KeyDown事件未被触发

时间:2011-10-16 11:45:49

标签: c# events taskbar keydown

我有一个表单,要求用户按下 Q 键3次。当他这样做时,表格将消失(这就是为什么我使用无边框形式来防止击中X-Button)。表单本身不是模态的。

这是我用来处理KeyDown事件的代码:

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

现在我不想在任务栏中为此表单添加额外的项目,因此我将ShowInTaskbar属性设置为false。问题是,当任务栏中没有显示表单时,KeyDown事件不再被触发 - 当它完成时,everthing工作正常。

有谁知道如何解决这个错误?

1 个答案:

答案 0 :(得分:11)

表单的KeyPreview属性必须设置为True,以便表单在表单上有其他可以获得焦点的控件时接收键事件。

编辑另外,如果您想阻止点击X按钮,可以将ControlBox设置为False,这会隐藏标题栏按钮。