如何捕获在我的表单上的任意位置输入按键,并强制它触发提交按钮事件?Windows窗体 - 输入keypress激活提交按钮?
回答
该表格有一个KeyPreview属性,您可以使用该属性来拦截按键。
如果将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' 的。
- 1. 激活输入提交按钮
- 2. 按钮:表单提交时不激活
- 3. 按提交输入按钮
- 4. 提交按钮不输入
- 5. ASP:按钮,输入提交
- 6. 输入提交按钮并输入
- 7. 当所有输入都有数据时,AngularJS提交按钮激活
- 8. 表单无提交按钮输入
- 9. 窗体在PHP和提交按钮?
- 10. 窗体上按钮提交只通过
- 11. 如何使用提交按钮来激活AJAX功能?
- 12. Windows窗体:激活方法和激活事件
- 13. 按自动提示框中的输入提交主窗体
- 14. 从窗体输入类型=“提交”
- 15. 敲击窗体外部的按钮以提交表单上的提交按钮
- 16. HTML按钮提交不激活php代码
- 17. Silverlight 3数据表单提交按钮未激活
- 18. 在HTML表单上提交Enter键而不是激活按钮
- 19. 我可以使用提交按钮来激活AJAX功能吗?
- 20. 激活提交按钮有效形式与jQuery Mobile的
- 21. 拖放Windows窗体按钮
- 22. Windows窗体按钮在C#
- 23. Windows窗体 - 点击按钮
- 24. 使用Javascript来更改哪些提交被激活输入密钥按
- 25. Primefaces命令按钮提交输入
- 26. 按钮提交触发器输入
- 27. 防止按钮提交输入密钥
- 28. 删除默认输入提交按钮
- 29. JSTL DSP:输入提交按钮值的HTML实体未解码
- 30. 激活只有一个'输入'的用户窗体
那么,为什么你不按马特汉密尔顿答案的AcceptButton属性呢? – Mukus 2015-06-18 23:55:59
使用'this.Form.DefaultButton = MyButton.UniqueID;' – 2016-03-03 13:38:13