对于每个事件,我必须编写一个事件处理程序:
this.MouseMove += new MouseEventHandler(Home_MouseMove);
this.KeyPress += new KeyPressEventHandler(Home_KeyPress);
如果我要捕获每个按钮处理程序,那么我将不得不为每个按钮编写一个事件处理程序。
有什么好的方法吗?
对于每个事件,我必须编写一个事件处理程序:
this.MouseMove += new MouseEventHandler(Home_MouseMove);
this.KeyPress += new KeyPressEventHandler(Home_KeyPress);
如果我要捕获每个按钮处理程序,那么我将不得不为每个按钮编写一个事件处理程序。
有什么好的方法吗?
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
。看?
如果您是这种情况,您可以使用递归来遍历每个集合。