北大青鸟课程之:C#委托与事件(二)

北京北大青鸟学校学术部提供:

扩展阅读:C#委托与事件(一)

二、在窗体中使用委托和事件
在上一篇文章中讲解的内容并不能体现委托和事件的优点,其实,委托和事件在C#中使用非常广泛,例如,当我们点击某个“按钮”的时候,就会有一个“Click”事 件触发,而这个事件会通知“委托”,在C#窗体应用程序中,“委托”的名字比较规范,统一使用“EventHandler”,它的具体格式是“void EventHandler(object sender, EventArgs e);”。相信大家都写过下面这样子的HelloWorld程序:(北大青鸟学校,北大青鸟课程

当点击按钮的时候弹出一个对话框。我们怎样实现的呢?你肯定会说,我们在设计窗口双击按钮,就会自动为我们生成类似如下的方法:(北大青鸟学校,北大青鸟课程)


private voi button1_Click(object sender, EventArgs e)
{
    MessageBox.Show("我被点击了!!!");

}
其实,这里用到的就是事件和委托,这里的button1_Click就是符合EventHandler委托规矩的一个具体的方法,即返回值为void,参数分别是一个object和EventArgs。

我们可以在Form1.Designer.cs中看到如下代码:

this.button1.Click += new System.EventHandler(this.button1_Click);

可以看到,这里有一个Click事件,然后将一个委托实例附加到这个事件上,跟我们前面讲的控制台应用程序中的用法是完全一样的。那这个Click事件是怎么触发的呢?对于这些系统类的事件,并不用我们管。

当然,我们也可以定义自己的事件和委托,例如我定义一个事件,这个事件就是输出对象的名字。(北大青鸟学校,北大青鸟课程

北大青鸟学校撰写
 

北大青鸟网上报名
北大青鸟招生简章