C#创建事件处理程序'方法名称预期'错误

时间:2012-01-27 14:37:40

标签: c# events

所以我有一个专门用于保存事件处理方法的类,我想在其他多个类中使用它:

class MyHandler
{
    public MyHandler()
    {
    }

    public void Method1(object sender, EventArgs e)
    {

    }
}

如果我这样做:

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

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

2 个答案:

答案 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;