EventHandler监听器

时间:2013-11-07 22:22:37

标签: c# asp.net events

我处在一个我有两个类的位置,一个有一个按钮的事件处理程序,我需要能够在另一个类中监听该事件处理程序,以便在非按钮类中进行更改。我对这种情况没有多少经验,所以不太清楚从哪里开始。

1 个答案:

答案 0 :(得分:0)

这是这两个类的一个例子(如果我理解正确的问题)。

class Form
{
    Button _button1, _button2;

    public Form()
    {
        _button1 = new Button("button1");
        _button2 = new Button("button2");

        _button1.Click += _button_Click;
        _button2.Click += _button_Click;
    }

    void _button_Click(object sender, EventArgs e)
    {
        Button button = (Button)sender;
        Console.WriteLine(button.Name);
    }

    public void Click1()
    {
        _button1.FireEvent();
    }

    public void Click2()
    {
        _button2.FireEvent();
    }
}

class Button
{
    public event EventHandler Click;
    public string Name;

    public Button(string name)
    {
        Name = name;
    }

    public void FireEvent()
    {
        Click(this, new EventArgs());
    }
}

用法:

    Form f = new Form();

    f.Click1();
    f.Click2();