Windows窗体 – input按键激活提交button?
我怎样才能捕捉到我的窗体上的任何地方input按键,并强制它触发提交button事件?
如果您将窗体的AcceptButton属性设置为窗体上的其中一个button,则默认情况下会获得该行为。
否则,在窗体上将KeyPreview属性设置为True并处理其KeyDown事件。 您可以检查Enter键并采取必要的措施。
您可以指定一个button作为表单的属性中的“AcceptButton”,并将捕获窗体上的任何“Enter”按键,并将它们路由到该控件。
请参阅此MSDN文章,并注意其中列出的几个例外(多行文本框等)
private void textBox_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter){ button.PerformClick(); } }
如前所述,将表单的AcceptButton属性设置为它的一个button,并将该button的DialogResult属性设置为DialogResult.OK ,以便调用者知道对话是被接受还是被解除。
您可以订阅文本框的KeyUp事件。
private void txtInput_KeyUp(object sender, KeyEventArgs e) { if(e.KeyCode == Keys.Enter) DoSomething(); }
表单有一个KeyPreview属性,你可以用它来拦截按键。
将窗体上的KeyPreview属性设置为True,然后使用表单级别上的KeyPress事件来检测Enter键。 在检测时调用任何代码你将有“提交”button。
if (e.KeyCode.ToString() == "Return") { //do something }
简单的使用
this.Form.DefaultButton = MyButton.UniqueID;
**把你的buttonID代替“MyButton”。