我正在使用扫描仪向我发送像这样的条形码:“¬00111111111112222222”按下键,如USB键盘。我需要做的是每当我得到前缀“¬”时将焦点设置在TextBox上。
现在的问题是,在我的KeyDown事件中,KeyEventArgs是“System”而不是我前缀中的字符。有没有办法比较这个标志来设置焦点?
我试过的代码是:
private void KeyDownEvent(object sender, KeyEventArgs e)
{
if (Convert.ToString(e.Key) == "¬")
{
myTextBox.Focus();
}
}
更新: 我现在尝试了e.SystemKey,此时,我将LeftAlt作为Event参数。那么也许AISCII代码转换为这个SystemKey LeftAlt?
更新: 我记录了扫描条形码时得到的所有密钥,我注意到我没有像我想的那样得到ASCII代码本身。我得到的是键组合,使这个符号像“Alt + NumPad0 + NumPad7 + NumPad2”,所以现在我只需要将它们与“¬”符号中的ASCII码匹配,然后它必须工作。感谢所有的帮助......
答案 0 :(得分:0)
尝试读取串行输入缓冲区(serial comm sample)并解析字符串以检查特殊字符。 点击这里: http://www.codeproject.com/Articles/678025/Serial-Comms-in-Csharp-for-Beginners
OR 您可以只获取ascii值并与特定值或范围进行比较。 例如, 小于65或大于126。