所以我有一个专门用于保存事件处理方法的类,我想在其他多个类中使用它:
class MyHandler
{
public MyHandler()
{
}
public void Method1(object sender, EventArgs e)
{
}
}
如果我这样做:
button1.Click += new System.EventHandler(this, MyHandler.Method1);
我收到标题中提到的错误。我在这里做错了什么?
答案 0 :(得分:5)
目前尚不清楚你的论点是什么意思。如果事件订阅代码位于MyHandler
的实例方法中,则只需要:
button1.Click += new System.EventHandler(Method1);
或更简要地说:
button1.Click += Method1;
如果它来自不同的类,您需要创建MyHandler
的实例,例如
MyHandler handler = new MyHandler();
button1.Click += handler.Method1;
或将Method1
方法设为静态并按以下方式订阅:
button1.Click += MyHandler.Method1;
答案 1 :(得分:3)
使用此
class MyHandler
{
public static void Method1(object sender, EventArgs e)
{
}
}
button1.Click += MyHandler.Method1;