由于某些原因我在按下 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();
}
答案 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点击。