如何在表单上的任何位置捕获输入按键并强制它触发提交按钮事件?
答案 0 :(得分:183)
如果将Form的AcceptButton属性设置为表单上的某个按钮,则默认情况下会获得该行为。
否则,在Form上将KeyPreview属性设置为True并处理其KeyDown事件。您可以检查Enter键并采取必要的措施。
答案 1 :(得分:20)
您可以在Form的属性中将一个按钮指定为“AcceptButton”,它将捕获表单上的任何“Enter”按键,并将它们路由到该控件。
请参阅this MSDN article并注意其概述的少数例外情况(多行文字框等)
答案 2 :(得分:19)
private void textBox_KeyDown(object sender, KeyEventArgs e) {
if (e.KeyCode == Keys.Enter){
button.PerformClick();
}
}
答案 3 :(得分:9)
如前所述,将表单的 AcceptButton 属性设置为其中一个按钮并将该按钮的 DialogResult 属性设置为 DialogResult.OK ,以便调用者知道对话框是被接受还是被解雇。
答案 4 :(得分:6)
您可以订阅文本框的KeyUp事件。
private void txtInput_KeyUp(object sender, KeyEventArgs e)
{
if(e.KeyCode == Keys.Enter)
DoSomething();
}
答案 5 :(得分:2)
表单有一个KeyPreview属性,可用于截取按键。
答案 6 :(得分:0)
将表单上的KeyPreview属性设置为True,然后使用表单级别的KeyPress事件来检测Enter键。在检测时,调用“提交”按钮所需的任何代码。
答案 7 :(得分:0)
if (e.KeyCode.ToString() == "Return")
{
//do something
}
答案 8 :(得分:0)
只需使用
this.Form.DefaultButton = MyButton.UniqueID;
**将您的按钮ID代替' MyButton'。