一种比较特殊字符的方法

时间:2016-06-21 09:36:37

标签: c# wpf

我正在使用扫描仪向我发送像这样的条形码:“¬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码匹配,然后它必须工作。感谢所有的帮助......

1 个答案:

答案 0 :(得分:0)

尝试读取串行输入缓冲区(serial comm sample)并解析字符串以检查特殊字符。 点击这里: http://www.codeproject.com/Articles/678025/Serial-Comms-in-Csharp-for-Beginners

OR 您可以只获取ascii值并与特定值或范围进行比较。 例如, 小于65或大于126。