自定义EventHandler的按钮

时间:2015-05-04 06:33:31

标签: c# button

我想为按钮分配一个自定义事件处理程序。

我在

下创建了一个事件处理程序
public class ButtonEventHandler
{
    ButtonEventHandler()
    {
        // Assign a function to delegate
        this.ClickHandler = _ClickHandler;
    }

    public delegate void ClickHandlerDelegate(object sender, EventArgs e);
    public ClickHandlerDelegate ClickHandler;
    private void _ClickHandler(object sender, EventArgs e)
    {

    }
}

然后我将它分配给另一个类

的构造函数内的Button
public ImgButton(Image image, string lblTxt, ButtonEventHandler eventHandler)
{
    InitializeComponent();

    this.lblTxt.Click      += eventHandler.ClickHandler;
}

当我尝试编译时,我得到以下错误

  

错误无法隐式转换类型' ClickHandlerDelegate'至   ' System.EventHandler'

怎么办?代表可以继承吗?如果有,怎么样?如果没有,那么如何明确转换?

1 个答案:

答案 0 :(得分:1)

您不需要创建委托对象,只需将方法创建为public并将其处理为单击事件

public class ButtonEventHandler
{    
    public void ClickHandler(object sender, EventArgs e)
    {

    }
}

如果您不想创建实例对象

,也可以将其创建为静态