2011-08-07 5 views
3

wpf 텍스트 상자 컨트롤에서 이벤트 keyDown 이벤트를 사용하고 e.Key으로 클릭 한 키를 캡처하려고했지만 "@"문자에 키가 없으므로, 나는 그것을 잡지 못한다. 클릭 한 "@"키 감지 방법키보드에서 "@"문자 입력을 잡는 방법

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

룩 코드를 찾으십시오. – 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

관련 문제