1

バーコード スキャナーからの「すべて」の入力を使用するクラスを作成しています。http://nicholas.piasecki.name/blog/2009/02/distinguishing-barcode-scanners-from-the-keyboard-in-winforms/のコードを使用しています。

テストのために PreFilterMessage() に次の行を追加しました。

if (m.Msg != Win32.WM_INPUT)
{
    // Allow any non WM_INPUT message to pass through
    return false;
}
return true;

問題は、"═" (Alt + Numpad: 205) を含むバーコードにあります。テキストボックスに入力されます。Alt + Numpad キーがディスパッチされないようにするにはどうすればよいですか?

フォームを設定することにより、フォームレベルでキーをキャッチすることにより、この問題を処理できます

keypreview=true, 

および form_keypress イベント設定で

//if(Alt pressed && numpad keys)
e.Handled = true;

しかし理想的には、これはクラスによって処理されるべきです。何か案は??

4

1 に答える 1