因此,我有一个专门用于保存事件处理方法的类,该方法要在其他多个类中使用:

class MyHandler
{
    public MyHandler()
    {
    }

    public void Method1(object sender, EventArgs e)
    {

    }
}


现在,如果我这样做:

button1.Click += new System.EventHandler(this, MyHandler.Method1);


我得到标题中提到的错误。我在这里做错了什么?

最佳答案

目前尚不清楚您的论点是为了什么。如果事件订阅代码在MyHandler的实例方法内,则只需要:

button1.Click += new System.EventHandler(Method1);


或更简短地说:

button1.Click += Method1;


如果来自不同的类,则您需要创建MyHandler的实例,例如

MyHandler handler = new MyHandler();
button1.Click += handler.Method1;


或将Method1方法设为静态并按以下方式订阅:

button1.Click += MyHandler.Method1;

10-06 08:30