2012-07-13 51 views
1

對於每一個事件我必須寫一個事件處理程序:我怎麼能捕獲所有事件的形式

this.MouseMove += new MouseEventHandler(Home_MouseMove); 
this.KeyPress += new KeyPressEventHandler(Home_KeyPress); 

如果我一個捕捉每一個按鈕處理程序,那麼我會寫一個事件處理程序每個按鈕。

任何好方法?

回答

1

您可以爲事件上的每個Button控件附加事件。更好的是,在調用InitializeComponent之後的構造函數中。

爲什麼'之後'?因爲如果您以前做過,則無法控制要附加的表單。

foreach(Control c in this.Controls) 
{ 
    if(c is Button) 
    { 
     // Just an example, mold it to fit your app. 
     ((Button) c).Click += new MouseClickHandler(); 
    } 
} 

請注意,如果你有一個Panel控制在它的按鈕,這將不會對事件重視它,因爲該按鈕是不是表格(「本」)的.Controls集合的一部分;而是this.Panel1.Controls。看到?

如果您遇到這種情況,您可以使用遞歸遍歷每個集合。

+0

Thnanks,讓我試試看。 – Alvin 2012-07-13 02:41:57

相關問題