我有一個winform應用程序。在應用程序中,我有一個帶有多個按鈕的面板。是否可以在一箇中央位置以面板形式請求按鍵信號?
現在,當按鈕沒有焦點,我可以捕捉形式本身的keyPressed事件。但是,當按鈕具有焦點形式(即使按鈕不抓事件explecitely)只有他們得到了keyPressed事件,而不是形式。
現在我的問題是:是否有任何方法來集中按鍵行爲(沒有創建每個按鈕的按鍵事件,並調用該事件的中心方法)?
我有一個winform應用程序。在應用程序中,我有一個帶有多個按鈕的面板。是否可以在一箇中央位置以面板形式請求按鍵信號?
現在,當按鈕沒有焦點,我可以捕捉形式本身的keyPressed事件。但是,當按鈕具有焦點形式(即使按鈕不抓事件explecitely)只有他們得到了keyPressed事件,而不是形式。
現在我的問題是:是否有任何方法來集中按鍵行爲(沒有創建每個按鈕的按鍵事件,並調用該事件的中心方法)?
在本質上僅1方法需要用適當的參數來定義: 示例:
private void Event_Key_Press_Check(object sender, KeyPressEventArgs e)
然後,此方法只需要被放在如在事件中使用的方法的名稱(形式設計),或添加爲事件。
這樣僅使用1方法。
因此沒有更簡單的方法,並且需要爲每個按鈕(而不是總是觸發的1箇中心事件)定義事件需求。
設置表單屬性KeyPreview
到true
和設置按鍵處理。然後表單將在按鈕之前處理這個事件。
我有同樣的問題,這是很容易解決:)
入住這裏:KeyPress at form level with controls
的KeyPreview
屬性(表單中)正好被設置爲True
。通過這種方式,表單將在任何其他控件之前處理KeyPress
事件,即使其中一個控件具有焦點
分開差異:創建單個處理程序並將其附加到每個按鈕的事件。一個由所有人調用的代碼。 – DonBoitnott
@DonBoitnott我知道這個方法。這意味着我將不得不爲每個按鈕使用按鍵事件。因此我想知道是否有可能避免這種情況 – Thomas