2011-10-16 75 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