Windows compact framework 3.5 combobox 下拉列表



我正在更新一个扫描条形码的现有应用程序,该应用程序是用在Windows compact Framework 3.5上运行的 VB.net 编写的。扫描仪是运行Windows移动手持6.5的POCKETPC。我有一个组合框DropDownStyle='DropDown'.我想以编程方式下拉该框。

我已经编写了以下内容:

 <DllImport("coredll.dll", SetLastError:=True)> _
    Public Shared Function SendMessage(ByVal hWnd As IntPtr, _
                                      ByVal Msg As Integer, _
                                      ByVal wParam As Integer, _
                                      ByVal lParam As Integer) As IntPtr
    End Function
  Const CB_SHOWDROPDOWN As Int32 = &H14F
  SendMessage(cmbVisitoringUnit.Handle, CB_SHOWDROPDOWN, 1, 0)

返回代码为 1,但不发生下拉列表。我错过了什么?

基于我所做的更多测试,让我回答我自己的问题。为了使组合框的下拉消息正常工作,组合框必须具有焦点,因此代码必须首先将焦点设置为控件,然后将消息发送到下拉列表。组合框还有另一个怪癖。如果它被下拉并且由于任何原因而失去焦点,则控件将取消下拉列表,然后销毁事件。这会导致程序没有响应的印象,用户需要再次重复该操作。我能想到的唯一解决方法是始终尽可能取消下拉列表。

最新更新