1.委托的定义
事件成员,C#语法使用关键字event来定义。
每个事件成员都要指定以下内容:
1个可访问性标识符(基本都是public,这样其他代码才可以访问该事件成员);
1个委托类型,它指出要调用方法的原型;
1个名称(可以是任意有效的标识符)。
如:public
event
EventHandler Click;
其中,可访问性标识符是public,Click是事件的名称,
事件成员的类型是EventHandler,
意味着所有的方法都必须提供1个与EventHandler委托类型匹配的方法,
EventHandler委托类型定义如下:
public
delegate
void
EventHandler(
object
sender, EventArgs e);
所以方法原型必须具有如下形式:
void
MethodName(
object
sender, EventArgs e);
-
2.应用
在WPF节奏训练软件中:
MidiStringPlayer类提供了路由事件:
public event EventHandler Ended;当播放结束的时候发生的委托
-
定义方法:
-
//当音乐播放结束的时候,使播放按钮的边框颜色变为白色
-
private void end(object sender, EventArgs e)
{
play.BorderBrush = Brushes.White;
}
-
触发:midiPlayer.Ended += new EventHandler(end);