Windows紧凑框架3.5组合框下拉列表

时间:2017-02-13 09:02:35

标签: compact-framework

我正在更新扫描条形码的现有应用程序,并且是在Windows Compact Framework 3.5上运行的VB.net中编写的。扫描仪是运行Windows mobile手持设备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,但不会发生下拉列表。我错过了什么?

1 个答案:

答案 0 :(得分:0)

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

相关问题