今天试了下在程序中添加捕获ESC键,并退出程序的功能,坑爹!
本来Form上有一个属性是CancelButton,然后将它与一个按钮Button绑定后,按下ESC即可执行该按钮,可以利用此方法来设计,将Button的单击响应函数写成退出应用程序即可。不过,由于界面上,为了美观,不能再添加一个按钮,于是我就将按钮的Visible属性设置为false,结果坑爹的问题来了,当控件不可见后,它的响应函数不执行!!!
于是又在网上查找,找到了类似如下代码:
private void F_Main_FormClosed(object sender, FormClosedEventArgs e)
{
loginUser.StopScan();
}
理论上很完美嘛,呵呵,可是它就是不执行。问题在于,对Esc、Tab、Enter这么几个特殊按键,KeyPress、KenDown等事件无法捕获。
貌似上面的方法无法实现功能啊。
问题的转机,在于Form窗体的KeyPreview属性上,注意将其默认的false改成true,上面的代码,就可以成功的工作啦!