EventArgs类怎么使用?

jshzp 2011-12-08 03:53:01
程序中,使用了EventHandler自定义事件myEvent,需要传递不同的信息给事件处理方法,例如需要传递的信息是字符串a或b。
现在,我只会传递EventArgs.Empty,或者传递e=new EventArgs();但是这样,并不能让e携带我需要传递的信息a或b。
应该怎么写代码呢?
另外,我知道自定义委托myEventHandler,然后再自定义事件参数类myEventArgs,就可以达到目的,但是我嫌这么写太罗嗦了。
如果只是使用微软的委托EventHandler,怎样才能传递我自己的信息呢?谢谢指教!
...全文
467 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jshzp 2011-12-08
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 sdl2005lyx 的回复:]
public event EventHandle<NewEventArgs > StringEvent;

泛型事件!看看MSDN。。。。
[/Quote]
谢谢,刚才看到微软定义EventHandler说的很清楚:“// 表示将处理不包含事件数据的事件的方法。”,看来就只能自己另写了。
浪得五个角,其实徒有虚名!才认识C#几个月。。。
纵横宇宙 2011-12-08
  • 打赏
  • 举报
回复
使用:
StringEventArgs se = new StringEventArgs("你的字符串");
if(StringEvent!=null)
StringEvent(se);
sdl2005lyx 2011-12-08
  • 打赏
  • 举报
回复
public event EventHandle<NewEventArgs > StringEvent;

泛型事件!看看MSDN。。。。
jshzp 2011-12-08
  • 打赏
  • 举报
回复
感谢楼上的回复,我的问题是在使用微软的EventHandler的前提下,怎么传递信息?
sdl2005lyx 2011-12-08
  • 打赏
  • 举报
回复
兄弟,都四个角了啊。。


public class NewEventArgs : EventArgs
{
string filename;
public string Filename
{
get { return filename; }
set { filename = value; }
}

public NewEventArgs ()
{
filename = "";
}
public NewEventArgs (string file)
{
filename = file;
}

}

public delegate void NewEventHandler(object sender, NewEventArgs e);

public event NewEventHandler youEvent;
纵横宇宙 2011-12-08
  • 打赏
  • 举报
回复
定义事件句柄:
public event EventHandle<StringEventArgs> StringEvent;
纵横宇宙 2011-12-08
  • 打赏
  • 举报
回复
继承 EventArgs
例如:
public class StringEventArgs:EventArgs
{
private string m_text;
public string Text{get{return m_text;}}
//构造函数
public StringEventArgs(string text){m_text=text;}

}

110,568

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧