2014-04-24 2 views
0

안녕하세요 저는 KeyPress 이벤트를 사용하는 WF에서 프로그램을 만들려고합니다. 나는 다음과 같은 코드를 작성했습니다 :KeyPress 및 KeyDown 이벤트

private void Form1_KeyPress(object sender, KeyPressEventArgs e) 
    { 
    while (true) 
    { 
     switch (e.KeyChar) 
     { 
        case (char)68: 
         MessageBox.Show("Test"); 
         break; 
     } 
     } 
} 

을하지만 프로그램을 실행하고 키 메시지 상자 doensn를 누를 때 t이 나타납니다. 누구든지 제안 사항이 있거나이를 해결하는 방법을 알고 있습니까? 나는 또한 KeyDown 이벤트가 작동 할 수 있다고 들었지만 그 중 하나를 다루는 방법을 모른다.

+2

이 실제 코드 :

그냥

private void Form1_KeyPress(object sender, KeyPressEventArgs e) { switch (e.KeyChar) { case (char)68: MessageBox.Show("Test"); break; } } 

이 또한 수행 실제 문자이 아닌 ASCII 코드에 누른 키를 비교하는 청소기 보인다? 실제 키와 독립적으로 앱을 정지시킵니다. – JeffRSon

답변

3

사용하지 마십시오 while(true)에서 . 무한 루프가 반복됩니다.

switch (e.KeyChar) 
    { 
     case 'D': 
      MessageBox.Show("Test"); 
      break; 
    } 
3

Form.KeyPreview

예 : 양식 이벤트 핸들러에서

this.KeyPreview =true;