按下使用 Esc 键关闭窗体的 C# 问题
本文关键字:窗体 问题 Esc | 更新日期: 2023-09-27 18:34:41
由于某种原因,我在按下 Esc 键时尝试关闭表单时遇到了问题。这个窗体还有一个 Exit 按钮,当我在 Exit 按钮事件处理程序中放下代码时,它不起作用,所以我求助于制作一个单独的事件处理程序来保存它,但它仍然不起作用。
这是我所拥有的:
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();
}
您必须首先启用KeyPreview
窗口窗体。转到窗体属性并将KeyPreview
设置为 true
。然后你的代码应该可以工作了。
只需将表单的Cancel
按钮设置为 buttonExit
即可。这是Form
上的一个属性。然后你可以摆脱所有这些代码。
你的代码是对的。也许您没有将窗体的 keydown 事件映射到窗体设计上的事件处理程序方法。
我认为您会发现问题与窗体上具有焦点的内容有关,因为此控件将是接收按键事件的控件,而不是其窗体上的控件。
但是,如果您使用窗体.取消按钮属性
然后,它会自动将自身硬连接到ESC键中
您可以尝试将表单的 KeyPreview 属性设置为 true:否则您的表单将无法当您将键盘焦点放在窗体中的控件上时,继续执行 KeyDown 事件。
您也可以修改按钮退出按钮:将其属性">对话框结果"设置为"取消">为了执行单击逃生按下。