gpt4 book ai didi

c# - 从 KeyEventArgs 过滤控制键

转载 作者:太空宇宙 更新时间:2023-11-03 11:29:09 25 4
gpt4 key购买 nike

我有一个小型事件处理程序来处理用户按下的或条形码扫描器传送的所有键:

public void KeyDownSink(object sender, System.Windows.Input.KeyEventArgs e)
{
_textRead.Append(e.Key);
}

private StringBuilder _textRead = new StringBuilder();


变量 _textRead应该收集所有按下的字符。我只对产生可打印输出的键感兴趣(a-z、0-9、!"§$%& 等等)。如果用户按下例如 Ctrl 这将添加字符串 LeftCtrl_textRead ,所以我想跳过这个键。

如何优雅地过滤掉 CtrlShiftAlt...等控制键?

我知道我可以通过很多条件语句 ( if e.Key == Key.Ctrl ) 来实现这一点,但我希望找到更好的方法。

最佳答案

试试这个:

using System;
using System.Text;
using System.Windows.Input;

public void KeyDownSink(object sender, System.Windows.Input.KeyEventArgs e)
{
string keyPressed = _keyConv.ConvertToString(e.Key);

if (keyPressed != null && keyPressed.Length == 1)
{
if (char.IsLetterOrDigit(keyPressed[0]))
{
_textRead.Append(keyPressed[0]);
}
}
}

private StringBuilder _textRead = new StringBuilder();
private KeyConverter _keyConv = new KeyConverter();

关于c# - 从 KeyEventArgs 过滤控制键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8415149/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com