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


95

如何捕获表单上任意位置的Enter键并强制其触发Submit按钮事件?


8
那么,为什么不按Matt Hamilton的答案上的AcceptButton属性呢?
Mukus 2015年

使用'this.Form.DefaultButton = MyButton.UniqueID;'
Bino Kochumol Varghese

Answers:


196

如果您设置FormAcceptButton属性设置为一个Button在S Form,你会得到默认这种行为。

否则,将KeyPreview属性设置为trueon Form并处理其KeyDown事件。您可以检查Enter密钥并采取必要的措施。


8
并且不要忘记使用CancelButton来处理Escape按键
WholeLifeLearner 2014年

1
太棒了!我需要更好地了解我的Framewrok;)
杰克

24
private void textBox_KeyDown(object sender, KeyEventArgs e) 
{
    if (e.KeyCode == Keys.Enter)
        button.PerformClick();
}



6

您可以订阅的KeyUp活动TextBox

private void txtInput_KeyUp(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.Enter)
       DoSomething();
}

1
正是我想要的。我将button dialogresult设置为OK,并且不想编写不必要的代码使ENTER起作用!
Kristjan1215



0

将窗体上的KeyPreview属性设置为True,然后在窗体级别使用KeyPress事件检测Enter键。检测时,调用“提交”按钮所需的任何代码。


0
  if (e.KeyCode.ToString() == "Return")
  { 
      //do something
  }
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.