Windows窗体 - 输入按键激活提交按钮?

Fly*_*wat 85 c# winforms

如何在表单上的任何位置捕获输入按键并强制它触发提交按钮事件?

Mat*_*ton 188

如果将Form的AcceptButton属性设置为表单上的某个按钮,则默认情况下会获得该行为.

否则,在Form上将KeyPreview属性设置为True并处理其KeyDown事件.您可以检查Enter键并采取必要的操作.

  • 并且不要忘记用于处理Escape按键的CancelButton (8认同)

bou*_*ard 21

您可以在Form的属性中将按钮指定为"AcceptButton",它将捕获表单上的任何"Enter"按键并将它们路由到该控件.

请参阅此MSDN文章,并注意它概述的一些例外情况(多行文本框等)


ruv*_*uvi 19

private void textBox_KeyDown(object sender, KeyEventArgs e) {
    if (e.KeyCode == Keys.Enter){
        button.PerformClick();
    }
}
Run Code Online (Sandbox Code Playgroud)


Sor*_*scu 9

如前所述,将表单的AcceptButton属性设置为其按钮之一并将该按钮的DialogResult属性设置为DialogResult.OK,以便调用者知道对话框是被接受还是被解除.


san*_*eev 6

您可以订阅文本框的KeyUp事件.

private void txtInput_KeyUp(object sender, KeyEventArgs e)
{

    if(e.KeyCode == Keys.Enter)
       DoSomething();

}
Run Code Online (Sandbox Code Playgroud)


its*_*att 2

Form 有一个KeyPreview属性,您可以使用它来拦截按键。