バーコード スキャナーからの「すべて」の入力を使用するクラスを作成しています。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;
しかし理想的には、これはクラスによって処理されるべきです。何か案は??