Windows窗体 - 输入keypress激活提交按钮?
如果将Form的AcceptButton属性设置为表单上的某个按钮,则默认情况下会获得该行为。
否则,在表单上将KeyPreview属性设置为True并处理其KeyDown事件。您可以检查Enter键并采取必要的措施。
这是完美!谢谢马特。 :) – Bravo 2012-12-20 14:07:50
并不要忘记关于处理退出按键的CancelButton – WholeLifeLearner 2014-10-16 14:51:59
将窗体上的KeyPreview属性设置为True,然后在窗体级别使用KeyPress事件来检测Enter键。在检测过程中,您可以调用“提交”按钮的任何代码。
您可以在窗体的属性中指定一个按钮作为“AcceptButton”,它将捕获窗体上的任何“Enter”按键并将它们传送到该控件。
见this MSDN article并注意它概述了少数例外(多行文本框等)
如前所述,您的表单的AcceptButton属性设置为某个按钮,并设置的DialogResult属性为DialogResult.OK,以便调用者知道该对话是被接受还是被解雇。
您可以订阅文本框的KeyUp事件。
private void txtInput_KeyUp(object sender, KeyEventArgs e)
{
if(e.KeyCode == Keys.Enter)
DoSomething();
}
private void textBox_KeyDown(object sender, KeyEventArgs e) {
if (e.KeyCode == Keys.Enter){
button.PerformClick();
}
}
if (e.KeyCode.ToString() == "Return")
{
//do something
}
只需使用
this.Form.DefaultButton = MyButton.UniqueID;
**把你的按钮ID到位 '为myButton' 的。
那么,为什么你不按马特汉密尔顿答案的AcceptButton属性呢? – Mukus 2015-06-18 23:55:59
使用'this.Form.DefaultButton = MyButton.UniqueID;' – 2016-03-03 13:38:13