2011-10-16 288 views
4

我有一個表單,要求用戶按3次鍵Q。當他這樣做時,表格將消失(這就是爲什麼我使用無邊框形式來防止擊中X-Button)。表單本身不是模態的。KeyDown事件未被觸發

這是我用來處理KeyDown事件的代碼:

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

現在我不希望有這種形式在任務欄上一個額外的項目,所以我的ShowInTaskbar屬性設置爲false。問題是,當表單沒有顯示在任務欄中時,KeyDown事件不會再被觸發 - 事實是,everthing工作得很好。

有誰知道我該如何修復這個bug?

+2

什麼是用戶不友好的混亂讓他們按三次退出...爲什麼? – CodeCaster

回答

9

窗體的KeyPreview屬性必須設置爲True才能使窗體在窗體上有其他控件可以接收焦點時接收按鍵事件。另外,如果您想防止點擊X按鈕,您可以將ControlBox設置爲False,從而隱藏標題欄按鈕。

+0

謝謝,解決了這個問題! – lukew