我想为按钮分配一个自定义事件处理程序。
我在
下创建了一个事件处理程序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)
{
}
}
然后我将它分配给另一个类
的构造函数内的Buttonpublic ImgButton(Image image, string lblTxt, ButtonEventHandler eventHandler)
{
InitializeComponent();
this.lblTxt.Click += eventHandler.ClickHandler;
}
当我尝试编译时,我得到以下错误
错误无法隐式转换类型' ClickHandlerDelegate'至 ' System.EventHandler'
怎么办?代表可以继承吗?如果有,怎么样?如果没有,那么如何明确转换?
答案 0 :(得分:1)
您不需要创建委托对象,只需将方法创建为public并将其处理为单击事件
public class ButtonEventHandler
{
public void ClickHandler(object sender, EventArgs e)
{
}
}
如果您不想创建实例对象
,也可以将其创建为静态