
C#中eventhandler及eventargs
button1.Click+=newEventHandler(figure1);但是figure1函数好像是不能传递参数的,我自己声明了一个委托ev1(objectsen...
button1.Click += new EventHandler(figure1);
但是figure1函数好像是不能传递参数的,我自己声明了一个委托ev1(object sender,testevent fe),testevent fe是我有声明的一个testevent:EventArgs类,用它来传递参数的,但是这样
button1.Click += new ev1(figure1);
运行说错误 1 无法将类型“WindowsFormsApplication3.Form1.ev1”隐式转换为“System.EventHandler”
哪位高手帮帮忙啊 展开
但是figure1函数好像是不能传递参数的,我自己声明了一个委托ev1(object sender,testevent fe),testevent fe是我有声明的一个testevent:EventArgs类,用它来传递参数的,但是这样
button1.Click += new ev1(figure1);
运行说错误 1 无法将类型“WindowsFormsApplication3.Form1.ev1”隐式转换为“System.EventHandler”
哪位高手帮帮忙啊 展开
展开全部
Button.Click事件C#定义方式:
public event EventHandler Click;
Click事件是EventHandler类型的。
button.CLick事件只能接受EventHandler类型的委托,你给他一个自定义的ev1类型的委托运行时候格式不匹配会隐式转换,转化不了就异常了。
在老C#中EventHandler指的是一个需要定义一个delegate,这个delegate是回调的规范。例如:
public delegate void CustomEventHandler(object sender, CustomEventArgs a);
在新C#中,内置了一个EventHandler<T>范型。
event是一个关键字,用event关键字可以定义一个event对象。
public event CustomEventHandler RaiseCustomEvent;
在新C#下,可以像下面这么写:
public event EventHandler<CustomEventArgs> RaiseCustomEvent;
最后,参数要从EventArgs类继承。
public event EventHandler Click;
Click事件是EventHandler类型的。
button.CLick事件只能接受EventHandler类型的委托,你给他一个自定义的ev1类型的委托运行时候格式不匹配会隐式转换,转化不了就异常了。
在老C#中EventHandler指的是一个需要定义一个delegate,这个delegate是回调的规范。例如:
public delegate void CustomEventHandler(object sender, CustomEventArgs a);
在新C#中,内置了一个EventHandler<T>范型。
event是一个关键字,用event关键字可以定义一个event对象。
public event CustomEventHandler RaiseCustomEvent;
在新C#下,可以像下面这么写:
public event EventHandler<CustomEventArgs> RaiseCustomEvent;
最后,参数要从EventArgs类继承。
展开全部
Button.Click事件C#定义方式:
public event EventHandler Click;
Click事件是EventHandler类型的。
button.CLick事件只能接受EventHandler类型的委托,你给他一个自定义的ev1类型的委托运行时候格式不匹配会隐式转换,转化不了就异常了。
public event EventHandler Click;
Click事件是EventHandler类型的。
button.CLick事件只能接受EventHandler类型的委托,你给他一个自定义的ev1类型的委托运行时候格式不匹配会隐式转换,转化不了就异常了。
参考资料: ms-help://MS.MSDNQTR.v90.chs/fxref_system.web/html/3d930339-54a1-06f1-9740-2513d50eee01.htm
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个还真没法改.而且你这么做完全没有意义.
首先你要明白.这个事件是怎么触发的.是由系统消息触发的,参数也是系统带过来的,有就有,没有就没有.这个是WINDOWS的内部机制.
所以就算你把委托改成了(object sender,testevent fe),难道你指望WINDOWS给你传个testevent fe类型的参数???这个参数还得你自己取
所以你应该
button1.Click += new EventHandler(button1_click);
public void button1_click(object sender,EventArgs e){
//参数e是系统发过来的,难道你指望他发testevent?所以这里没法改
//准备参数
figure1(sender,new testevent());
}
首先你要明白.这个事件是怎么触发的.是由系统消息触发的,参数也是系统带过来的,有就有,没有就没有.这个是WINDOWS的内部机制.
所以就算你把委托改成了(object sender,testevent fe),难道你指望WINDOWS给你传个testevent fe类型的参数???这个参数还得你自己取
所以你应该
button1.Click += new EventHandler(button1_click);
public void button1_click(object sender,EventArgs e){
//参数e是系统发过来的,难道你指望他发testevent?所以这里没法改
//准备参数
figure1(sender,new testevent());
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |