2017-12-25 2 views
-1

목표는 간단합니다. 사용자가 텍스트 상자에 문자를 입력하면이 문자가 물음표 키 (?)인지 감지하려고합니다. 무엇을 사용할지 신경 쓰지 않습니다. (텍스트 변경, 키 다운 등 ...) 한 가지 언급 : 독일어 키보드 레이아웃을 작업하고 있으므로 키보드와 독립적 인 솔루션이 필요합니다 (예 : e.Key = Keys.OemQuestion isn).() 나는 Convert.toString ((문자) e.Key 시도) \ u0095e.Key.ToString를 반환 '은 t 내가 (+) 키)키보드와 독립적 인 물음표 감지

편집 플러스를 누를 때 화재, 작업 which returned OemOpenBrackets

+0

'textBox1_KeyPress (객체 발신자, KeyPressEventArgs e)'..'if (e.Ke yChar == '?') {...}'? –

+1

키보드와 독립적으로 사용하고자한다면, 왜 e.KeyChar 대신 e.Key를 검사할까요? –

+0

@DmitryBychenko WPF에서 작업 중이므로 KeyPress가 없지만 비슷한 코드를 (char) e.Key와 함께 사용했지만 결과가 '?'가 아닙니다. '\ u0095' – Shmosi

답변

0

@HansPassant에서 솔루션을 선택하고 TextInput 이벤트로 처리했습니다. 이 캡처하지 않는 공간, 제어, 이동 :

InitializeComponent(); 
CommandTextBox.AddHandler(TextBox.TextInputEvent, new TextCompositionEventHandler(CommandTextBox_TextInput), true); 

당신은 실제로 이벤트를

if(e.Text == "?") 
{ 
    //Do something 
} 

주의 TextInput에

불이 코드가 필요합니다 : 생성자의 첫 번째