C#按下Esc键使表单关闭的问题

时间:2013-10-10 13:45:49

标签: c#

由于某些原因我在按下 Esc 键时尝试关闭表单时出现问题。这个表单也有一个退出按钮,当我把代码放在退出按钮事件处理程序中时,它不起作用,所以我采取了单独的事件拿着它的处理程序,它仍然不起作用。

这就是我所拥有的:

private void buttonExit_Click(object sender, EventArgs e)
{
    this.Close();
}

private void FormName_KeyDown(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.Escape)
        this.Close();
}

5 个答案:

答案 0 :(得分:3)

只需将表单的Cancel按钮设置为buttonExit即可。它是Form上的一个属性。然后你可以摆脱所有代码。

答案 1 :(得分:3)

您必须先启用Windows窗体的KeyPreview。转到表单属性并将KeyPreview设置为true。那么你的代码应该可以工作。

答案 2 :(得分:0)

你的代码是对的。 也许您没有将表单的keydown事件映射到表单设计上的事件处理程序方法。

答案 3 :(得分:0)

我认为你会发现这个问题与表格上的内容有关,因为这个控件将是一个收到keypressed事件而不是其形式的控件。

但是如果你设置使用 Form.CancelButton Property

然后这个硬连接自动进入esc键

答案 4 :(得分:0)

您可以尝试将表单的 KeyPreview 属性设置为 true :否则您的表单不会 当您将键盘焦点放在表单中的控件上时,继续执行KeyDown事件。

您也可以修改buttonExit按钮:将其属性 DialogResult 设置为取消 为了点击Escape press点击。