初学c#的KeyDown方法监听esc不好用
直接挂代码
namespace BedsideSettlement
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
// 设置窗体为全屏
this.WindowState = FormWindowState.Maximized;
this.FormBorderStyle = FormBorderStyle.None; // 可选,去掉窗体边框
this.KeyPreview = true; // 允许窗体接收键盘事件
this.KeyDown += Form1_KeyDown;
}
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Escape) // 当按下Escape键时退出全屏
{
// 执行退出逻辑,例如关闭窗体
this.Close();
}
}
private void button1_Click(object sender, EventArgs e)
{
lblHelloWorld.Text = "Hello World!";
}
}
}
主要这是增加了下面的代码,通过将下面代码添加到构造函数中,确保了 Form1_KeyDown
方法与窗体的键盘按键事件关联。
this.KeyDown += Form1_KeyDown;
也有其他监听esc方法如下,重写ProcessCmdKey方法
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if (keyData == Keys.Escape)
{
// 当按下Escape键时退出全屏
this.WindowState = FormWindowState.Normal; // 将窗体恢复为正常状态
return true; // 返回true表示已经处理了按键事件
}
return base.ProcessCmdKey(ref msg, keyData);
}