1

对于每个事件,我必须编写一个事件处理程序:

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

如果我要捕获每个按钮处理程序,那么我将不得不为每个按钮编写一个事件处理程序。

有什么好的方法吗?

4

1 回答 1

1

Button您可以为事件上的每个类型的控件附加一个Form_Load事件。更好的是,在构造函数本身调用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带有按钮的控件,则不会将事件附加到它,因为该按钮不是 Form ("this") 集合的一部分.Controls;而是this.Panel1.Controls。看?

如果您是这种情况,您可以使用递归来遍历每个集合。

于 2012-07-13T02:30:02.463 回答