2017-08-07 24 views
0

我有一個winform應用程序。在應用程序中,我有一個帶有多個按鈕的面板。是否可以在一箇中央位置以面板形式請求按鍵信號?

現在,當按鈕沒有焦點,我可以捕捉形式本身的keyPressed事件。但是,當按鈕具有焦點形式(即使按鈕不抓事件explecitely)只有他們得到了keyPressed事件,而不是形式。

現在我的問題是:是否有任何方法來集中按鍵行爲(沒有創建每個按鈕的按鍵事件,並調用該事件的中心方法)

+0

分開差異:創建單個處理程序並將其附加到每個按鈕的事件。一個由所有人調用的代碼。 – DonBoitnott

+0

@DonBoitnott我知道這個方法。這意味着我將不得不爲每個按鈕使用按鍵事件。因此我想知道是否有可能避免這種情況 – Thomas

回答

0

在本質上僅1方法需要用適當的參數來定義: 示例:

private void Event_Key_Press_Check(object sender, KeyPressEventArgs e) 

然後,此方法只需要被放在如在事件中使用的方法的名稱(形式設計),或添加爲事件。

這樣僅使用1方法。

因此沒有更簡單的方法,並且需要爲每個按鈕(而不是總是觸發的1箇中心事件)定義事件需求。

0

設置表單屬性KeyPreviewtrue和設置按鍵處理。然後表單將在按鈕之前處理這個事件。

KeyPreview MSDN documentation

0

我有同樣的問題,這是很容易解決:)

入住這裏:KeyPress at form level with controls

KeyPreview屬性(表單中)正好被設置爲True。通過這種方式,表單將在任何其他控件之前處理KeyPress事件,即使其中一個控件具有焦點

相關問題