2011-08-07 9 views
3

イベントkeyDownをwpfテキストボックスコントロールで使用し、e.Keyでクリックしたキーをキャプチャしようとしましたが、「@」文字にはキーがないため、私はそれをキャッチすることはできません。クリックした "@"キーの検出方法キーボードから「@」文字を入力する方法

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

charコードを参照してください。 – tjameson

答えて

3

KeyDownは実際のキーですが、解釈には関係ありません。たとえば、代わりにPreviewTextInputを使用してください。

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

Keydownイベントはキーボードボタンを使用します。それは本当に文字について何も知らない。

代わりにKeyPressイベントを使用してみてください。代わりにこのイベントは、押されたばかりのキーのASCII文字コードを返します。

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

注:ASCII以外の文字はこのイベントをトリガーしません。

+0

これはWPFなので、そのようなイベントはありません。 –

+0

これはwpfですが、このイベントは存在しません – user882611

関連する問題