KeyEventHandler可以捕获正确的外键盘字符吗?
我需要查看句子在输入时是否包含某些字符,如果用户选择了系统键盘,则应识别德语变音字符,西里尔字母和其他字符。
this.PreviewKeyDown += new KeyEventHandler(OnButtonKeyDown);
private void OnButtonKeyDown(object sender, KeyEventArgs e)
{
Sentence.Contains(e.Key.ToString());
例如,输入ö会获得“Oem3”,无论选择哪个键盘,该键都与该按钮相同。
我不能在这里使用TextBox,因此首选KeyEventHandler。
答案 0 :(得分:1)
我不知道用KeyEventArgs
做任何事情。但您也可以使用PreviewTextInput
事件代替PreviewKeyDown
事件。例如。像这样:
this.PreviewTextInput += OnButtonPreviewTextInput;
...
void OnButtonPreviewTextInput(object sender, TextCompositionEventArgs e)
{
if ("äöüÄÖÜß".Contains(e.Text))
{
Debug.WriteLine("German text entered");
}
else if (e.Text.Any(c=>0x0400 <= c && c <= 0x4FF))
{
Debug.WriteLine("Cyrillic text entered");
}
}