重写窗体的ProcessCmdKey方法,当按下ESC键时执行退出逻辑。
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
// 设置窗体的KeyPreview属性为true,以确保在控件之前处理键盘事件
this.KeyPreview = true;
}
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if (keyData == Keys.Escape)
{
// 执行退出逻辑,例如关闭窗体
this.Close();
return true; // 返回true表示事件已处理,不再传递给其他控件
}
return base.ProcessCmdKey(ref msg, keyData); // 对于其他按键,调用基类方法
}
}