如何从键盘捕获“@”字符输入

时间:2011-08-07 10:11:47

标签: c# wpf events xaml

我试图在wpf文本框控件中使用事件keyDown事件并使用e.Key捕获单击的键,但是由于at“@”字符没有键,我可以'抓住它。如何检测单击“@”键

private void richTextBox1_KeyDown(object sender, KeyEventArgs e)
{
    if(e.Key == Key.) // nothing corresponding the at key 
}

2 个答案:

答案 0 :(得分:3)

KeyDown用于实际密钥,它与自己的解释无关。例如,请使用PreviewTextInput

private void RichTextBox_PreviewTextInput(object sender, TextCompositionEventArgs e)
{
    if (e.Text == "@")
    {
        //...
    }
}

答案 1 :(得分:0)

Keydown事件使用键盘按钮。它对人物一无所知。

尝试使用KeyPress事件。相反,此事件返回刚按下的键的ASCII字符代码。

private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
    if (e.KeyChar == '@') MessageBox.Show("The At sign was pressed");
}

注意:非ASCII字符不会触发此事件。