如何捕獲在我的表單上的任意位置輸入按鍵,並強制它觸發提交按鈕事件?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. 檢查一個窗體窗體按鈕是否被激活?
- 6. FXML按鈕在輸入時激活
- 7. ASP:按鈕,輸入提交
- 8. 提交輸入欄按鈕
- 9. 輸入提交按鈕並輸入
- 10. 當所有輸入都有數據時,AngularJS提交按鈕激活
- 11. 表單無提交按鈕輸入
- 12. 窗體不斷提交事件沒有按提交按鈕
- 13. 從窗體獲取提交按鈕?
- 14. 提交按鈕沒有窗體填充
- 15. 窗體在PHP和提交按鈕?
- 16. 窗體上按鈕提交只通過
- 17. 如何激活提交按鈕一旦所有字段填充
- 18. 如何使用提交按鈕來激活AJAX功能?
- 19. Windows窗體:激活方法和激活事件
- 20. 按自動提示框中的輸入提交主窗體
- 21. 從窗體輸入類型=「提交」
- 22. 敲擊窗體外部的按鈕以提交表單上的提交按鈕
- 23. 通過父頁面提交按鈕提交iframe和父窗體
- 24. 激活CLOSE按鈕
- 25. 形式輸入按鍵提交或點擊提交按鈕
- 26. 多個提交小部件,檢測哪個按鈕被激活
- 27. Silverlight 3數據表單提交按鈕未激活
- 28. HTML按鈕提交不激活php代碼
- 29. 驗證MVC提交按鈕激活,只有當有效
- 30. 在HTML表單上提交Enter鍵而不是激活按鈕
那麼,爲什麼你不按馬特漢密爾頓答案的AcceptButton屬性呢? – Mukus 2015-06-18 23:55:59
使用'this.Form.DefaultButton = MyButton.UniqueID;' – 2016-03-03 13:38:13