當按下按鈕時,有沒有辦法省略對按鈕執行的動作?我已經從SO獲得了一些很好的輸入,並嘗試通過OnKeyPress或OnKeyDown捕捉事件 - 但我無法忽略Enter-action。我也喜歡禁用Tabstop屬性的想法,但只要我點擊按鈕,問題就會重新出現。當按下Enter按鈕時省略動作
當按下「隨便」按鍵(如a或z)時,OnKeyDown似乎只會觸發,但當Enter被按下時不會觸發。我怎樣才能檢測到它 - 當Enter被擊中時 - 按鈕本身?
當按下按鈕時,有沒有辦法省略對按鈕執行的動作?我已經從SO獲得了一些很好的輸入,並嘗試通過OnKeyPress或OnKeyDown捕捉事件 - 但我無法忽略Enter-action。我也喜歡禁用Tabstop屬性的想法,但只要我點擊按鈕,問題就會重新出現。當按下Enter按鈕時省略動作
當按下「隨便」按鍵(如a或z)時,OnKeyDown似乎只會觸發,但當Enter被按下時不會觸發。我怎樣才能檢測到它 - 當Enter被擊中時 - 按鈕本身?
好了,事實證明
當您按下ENTER [...]的點擊此按鈕的事件被觸發
讓我想起使用OnMouseUp(MouseEventArgs e)
方法代替OnClick(EventArgs e)
。我給了它一個鏡頭,它完全符合我的要求 - 再加上:它使我有機會排除所述問題的包裝按鈕,而不涉及我的應用程序中的任何其他控件(如Form.AcceptButton
)。
感謝您的所有意見,這讓我從另一個角度思考問題!
您可以使用:if(e.KeyCode == Keys.Enter){}
檢查Button.IsDefault財產
當您按下ENTER
非多場裏面有一個表格默認按鈕設置,該按鈕的click
事件被觸發,如click
,而不是keyevent
(keypress
,keyup
,等)。
獲取或設置當用戶 按下回車鍵被點擊表格上的按鈕。
如果您不想要這種行爲(或者想阻止它),也許您應該將其作爲默認按鈕移除。 但是,如果你需要它是默認情況下只在某些情況下,你可以綁定/解除綁定編程它:
form1.AcceptButton = btnSave;
form1.AcceptButton = null;
此按鈕是窗體的默認按鈕嗎? – kpull1 2014-11-06 09:13:32
這是winforms默認按鈕,但包裝在一個新的類。 – 2014-11-06 09:16:38
你想達到什麼目的? 'Button'是一個假設被點擊的控件,用鼠標或按Enter /空格鍵。 *忽略行動*聽起來像解決不確定的問題,那會是什麼問題? – Sinatr 2014-11-06 09:18:32