2011-10-16 3 views
4

사용자에게 Q 키를 세 번 누를 것을 요청하는 양식이 있습니다. 그가 그렇게했을 때, 양식은 사라질 것입니다. (그래서 저는 국경없는 양식을 사용하여 X-Button을 치는 것을 방지합니다). 양식 자체는 모달이 아닙니다. KeyDown 이벤트가 실행되지 않음

내가 KeyDown 이벤트 처리하기 위해 사용하는 코드입니다 :

private void ConfirmForm_KeyDown_1(object sender, KeyEventArgs e) 
{ 
    if (e.KeyCode == Keys.Q) 
    { 
     if (++count == 3) 
      this.Close(); 
    } 
} 

가 지금은 작업 표시 줄에서이 양식에 대한 별도의 항목이하지 않으려을, 그래서 나는 falseShowInTaskbar 속성을 설정합니다. 문제는 양식이 작업 표시 줄에 표시되지 않을 때 KeyDown 이벤트가 더 이상 발생하지 않는다는 것입니다. 언제든지 정상적으로 작동합니다.

누구든지이 버그를 해결할 수있는 방법을 알고 있습니까?

+2

Q를 세 번 눌러서 종료시키는 사용자 친화적이지 않은 엉망 ... 왜죠? – CodeCaster

답변

9

포커스를받을 수있는 폼에 다른 컨트롤이있을 때 폼에서 키 이벤트를 받기 위해서는 폼의 KeyPreview 속성을 True로 설정해야합니다.

편집 : 또한 X 단추를 누르지 않으려면 ControlBox를 False로 설정하여 제목 표시 줄 단추를 숨길 수 있습니다.

+0

고맙습니다. 문제가 해결되었습니다! – lukew

관련 문제