识别KeyEventHandler中的西里尔字母或德语字符

本文关键字:德语 字符 KeyEventHandler 识别 | 更新日期: 2023-09-27 18:02:51

KeyEventHandler可以捕获正确的外国键盘字符吗?

我需要看看句子是否包含某些字符,而键入和德国的变音符字符,西里尔字母和其他应该被识别,如果用户有系统键盘选择。

this.PreviewKeyDown += new KeyEventHandler(OnButtonKeyDown);
private void OnButtonKeyDown(object sender, KeyEventArgs e)
{
   Sentence.Contains(e.Key.ToString());

例如,输入ö会得到"Oem3",无论选择哪个键盘,该按钮都是如此。

我不能在这里使用文本框,所以KeyEventHandler是首选。

识别KeyEventHandler中的西里尔字母或德语字符

我不知道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");
    }
}