如何在表单上的任何位置捕获输入按键并强制它触发提交按钮事件?
如果将Form的AcceptButton属性设置为表单上的某个按钮,则默认情况下会获得该行为.
否则,在Form上将KeyPreview属性设置为True并处理其KeyDown事件.您可以检查Enter键并采取必要的操作.
您可以在Form的属性中将按钮指定为"AcceptButton",它将捕获表单上的任何"Enter"按键并将它们路由到该控件.
请参阅此MSDN文章,并注意它概述的一些例外情况(多行文本框等)
private void textBox_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter){ button.PerformClick(); } }
如前所述,将表单的AcceptButton属性设置为其按钮之一并将该按钮的DialogResult属性设置为DialogResult.OK,以便调用者知道对话框是被接受还是被解除.
您可以订阅文本框的KeyUp事件.
private void txtInput_KeyUp(object sender, KeyEventArgs e) { if(e.KeyCode == Keys.Enter) DoSomething(); }