解决:无法引发Form.KeyUp或Form.KeyDown事件

如果我们的窗体内有至少一个TextBox,那么,在注册From的KeyUp或KeyDown事件后会发现,这个事件无法引发。

解决方法是添加 this.KeyPreview = true;

public Form1() { InitializeComponent(); this.KeyPreview = true; }

关于KeyPreview属性,MSDN解释如下:

“当此属性设置为 true 时,窗体将接收所有 KeyPress、KeyDown 和 KeyUp 事件。在窗体的事件处理程序处理完该击键后,然后将该击键分配给具有焦点的控件。例如,如果 KeyPreview 属性设置为 true,而且当前选定的控件是 TextBox,则在窗体的事件处理程序处理了击键后,TextBox 控件将接收所按的键。”

你可能感兴趣的:(textbox)