2017-02-13 41 views
0

私は、バーコードをスキャンする既存のアプリケーションを更新しています.Windows Compact Framework 3.5で動作するVB.netで書かれています。スキャナはWindows Mobileハンドヘルド6.5を実行するPOCKETPCです。私はコンボボックスDropDownStyle='DropDown'を持っています。私はプログラム的にボックスをドロップダウンしたい。Windowsコンパクトなフレームワーク3.5コンボボックスのドロップダウン

私は次のようにコーディングされています:

<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であるが、何のドロップダウンが行われません。私は何が欠けていますか?

答えて

0

多くのテストに基づいて、私自身の質問に答えさせてください。コンボボックスへのドロップダウンメッセージが動作するためには、コンボボックスにフォーカスがなければならないため、コードは最初にコントロールにフォーカスを設定してからメッセージをドロップダウンに送信する必要があります。コンボボックスにはもう一つの特徴があります。それがドロップダウンされ、何らかの理由でフォーカスが失われた場合、コントロールはドロップダウンをキャンセルしてイベントを破棄します。これは、プログラムが応答しておらず、ユーザーが再びアクションを繰り返す必要があるという印象をもたらします。私が思いつくことができる唯一の修正は、常に可能な限りドロップダウンをキャンセルすることです。

関連する問題