我正在写一个类来消耗条形码扫描器的'ALL'输入。我使用的是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;
但理想情况下,这应由班级处理。任何想法??
答案 0 :(得分:0)
检查修改键以阻止Alt + Numpad键怎么样? E.g。
if (ModifierKeys == Keys.Alt)
return true;