簡體   English   中英

按下Enter鍵時忽略動作

[英]Omit action when pressing Enter on button

有沒有辦法在按下鍵時忽略對按鈕執行的任何操作? 我已經從SO中獲得了一些很好的輸入,並試圖通過OnKeyPress或OnKeyDown來捕獲事件-但我不能省略Enter-action。 我也喜歡禁用Tabstop屬性的想法,但是一旦單擊按鈕,問題就會再次發生。

僅當按下“休閑”鍵(如a或z)時,才會觸發OnKeyDown,但在按Enter鍵時,不會觸發。 我如何才能檢測到按鈕本身(單擊Enter時)?

當您按下ENTER非多場內部有默認按鈕集的形式,在click這個按鈕觸發事件,如click ,不喜歡keyeventkeypresskeyupkeydown等)。

Form.AcceptButton

獲取或設置用戶按下ENTER鍵時單擊的表單上的按鈕。

如果您不希望這種行為(或想防止它),也許您應該將其刪除為默認按鈕。 但是,如果僅在某些情況下需要將其設置為默認值,則可以通過編程方式綁定/取消綁定:

form1.AcceptButton = btnSave;
form1.AcceptButton = null;

您可以使用:if(e.KeyCode == Keys.Enter){}

檢查Button.IsDefault屬性

好吧,事實是

當您按Enter [...]時,將觸發此按鈕的單擊事件

讓我考慮使用OnMouseUp(MouseEventArgs e)方法而不是OnClick(EventArgs e) 我試了一下,它完全符合我的要求-再加上:它使我有機會僅從上述問題中排除包裝的按鈕,而不涉及應用程序中的任何其他控件(例如Form.AcceptButton )。

感謝您的所有意見,這讓我從另一個角度思考了這個問題!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM