C#窗体无法接受键盘单击事件,Keydown事件无相应解决

问题:当新建一个窗体时,添加KeyDown事件后,会正常处理;但是当添加有控件时,比如Button,TextBox,就不会触发窗体的KeyDown事件,也没有调用KeyDown事件的处理程序。

原因:由于窗体中添加了控件,于是焦点就在其中一个控件上,如果我们要处理的事件窗体和获取焦点的控件都同时拥有,系统就会将键盘的操作键值直接传递给这个获取焦点的控件,就会出现上面这个问题。

解决方案:此时需要将窗体的KeyPreview属性设置为true,将系统传入的键值先传递给窗体,再传递给控件。

原文地址:https://www.cnblogs.com/CoreXin/p/14023116.html