KeyDown事件未被触发
问题描述:
我有一个表单,要求用户按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?
答
窗体的KeyPreview属性必须设置为True才能使窗体在窗体上有其他控件可以接收焦点时接收按键事件。另外,如果您想防止点击X按钮,您可以将ControlBox设置为False,从而隐藏标题栏按钮。
+0
谢谢,解决了这个问题! – lukew
什么是用户不友好的混乱让他们按三次退出...为什么? – CodeCaster