事件处理程序委托
void MyButton_Click(Object sender,
EventArgs E) {
...
} 声明事件 // Create a public event
public event EventHandler MyEvent;// Create a method for firing the event
protected void OnMyEvent(EventArgs e) {
MyEvent(this, e);
}
向事件添加事件处理程序或从事件移除事件处理程序
Control.Change += new EventHandler(this.ChangeEventHandler);
Control.Change -= new EventHandler(this.ChangeEventHandler);
void MyButton_Click(Object sender,
EventArgs E) {
...
} 声明事件 // Create a public event
public event EventHandler MyEvent;// Create a method for firing the event
protected void OnMyEvent(EventArgs e) {
MyEvent(this, e);
}
向事件添加事件处理程序或从事件移除事件处理程序
Control.Change += new EventHandler(this.ChangeEventHandler);
Control.Change -= new EventHandler(this.ChangeEventHandler);
1.先定义要触发的事件对象public class MyEventArgs: System.EventArgs
{
private int newValue;
public int NewValue
{
get{return newValue;}set{newValue = value;}
}
}2、定义事件代理public delegate void PropertyChangedHandler(object sender,MyEventArgs e);3、定义类,并在类中定义事件public class dog
{
public event PropertyChangedHandler PropertyChanged; //定义事件处理方法
protected virtual void OnPropertyChanged(MyEventArgs e)
{
if (PropertyChanged != null)
PropertyChanged(this,e);
} private int age;
public int Age
{
get{return age;}
set{ age = value;
MyEventArgs e = new MyEventArgs();
e.NewValue = age;
OnPropertyChanged(e); }
}
}
4、使用实例
public class Test
{
public static void main()
{
Dog aDog = new Dog();
aDog.PropertyChanged += new PropertyChantedHandler(this.aDog_AgeChanged);
aDog.Age = 10;
} private void aDog_AgeChanged(object sender, MyEventArgs e)
{
Console.Writeln(e.NewValue);
}
}
private static void aDog_AgeChanged //加上staticConsole.Writeline() //不是writelnaDog.PropertyChanged += new PropertyChantedHandler(aDog_AgeChanged);//去掉this