事件可以通过委托来定义,委托相当于函数的“指针”指向一个具体的函数。比如: public event EventHandler someEvent; EventHandler是一个委托,是专用于事件的委托, 而someEvent则是一个事件。有着object sender, EventArgs e这样的标准参数。
object sender, EventArgs e 这两个参数不是很懂啊
参数object sender表示引发事件的对象(其实这里传递的是对象的引用,如button1...) 参数System.EventArgs e 代表事件的相应信息,包含事件数据的类的基类,用于传递事件的细节。
你可以自己顶一个事件参数类,然后在另一个需要添加事件的类中定义事件,下面是一个手写的非常简单的例子事件参数类定义,有一个属性Data public Class YourEventArgs:EventArgs { private int _data; public YourEventArgs(int data) { _data=data; } public int Data { get { return _data; } } } 定义一个含有事件的类 public class YourClass { public delegate void YourEventHandler(object sender,YourEventArgs e); public event YourEventHandler OnYourEvent; //某个会触发事件的方法 private void xxx{ ……………………………………………………………… //到了该触发事件的时候 int dd=5; //这个5就是触发事件的时候传出去的值 OnYourEvent(this,new YourEventArgs(5) ……………………………………………………………… }} 调用这个类 YourClass yc=new YourClass(); yc.OnYourEvent+=YourClass.YourEventHandler(yc_OnYourEvent);private void yc_OnYourEvent(object sender,YourEventArgs:EventArgs e) { MessageBox.Show(e.Data.ToString()); }
public event EventHandler someEvent;
EventHandler是一个委托,是专用于事件的委托,
而someEvent则是一个事件。有着object sender, EventArgs e这样的标准参数。
参数System.EventArgs e 代表事件的相应信息,包含事件数据的类的基类,用于传递事件的细节。
public Class YourEventArgs:EventArgs
{
private int _data;
public YourEventArgs(int data)
{
_data=data;
} public int Data
{
get
{
return _data;
}
}
}
定义一个含有事件的类
public class YourClass
{
public delegate void YourEventHandler(object sender,YourEventArgs e); public event YourEventHandler OnYourEvent; //某个会触发事件的方法
private void xxx{
………………………………………………………………
//到了该触发事件的时候
int dd=5; //这个5就是触发事件的时候传出去的值
OnYourEvent(this,new YourEventArgs(5)
………………………………………………………………
}}
调用这个类
YourClass yc=new YourClass();
yc.OnYourEvent+=YourClass.YourEventHandler(yc_OnYourEvent);private void yc_OnYourEvent(object sender,YourEventArgs:EventArgs e)
{
MessageBox.Show(e.Data.ToString());
}