当前位置:首页 > 网络编程 > 软件语言 > .NET > VB.NET的Override事件处理程序

VB.NET的Override事件处理程序

点击次数:53 次 发布日期:2008-11-06 08:06:49 作者:源代码网
源代码网推荐
广告载入中
VB.NET的Override事件处理程序
源代码网推荐
源代码网推荐 介绍
源代码网推荐 在类或控件的继承中,子类或子控件封装了父类的所有函数,其中包括事件处理程序。本文将着重讨论在 Visual Basic .NET 应用程序设计中如何正确对待事件处理程序的继承。
源代码网推荐
源代码网推荐 读者要求
源代码网推荐 本文假定读者熟悉面向对象程序设计和类的继承性。若您尚未熟悉它们,请参阅《组件的多态性》 ("Polymorphism in Components")。
源代码网推荐
源代码网推荐 继承事件处理程序
源代码网推荐 当组件被继承时,它的所有成员都被封装到子类中。事件处理程序是响应特定事件的方法,是组件成员之一,因而也被继承。请看一个典型的事件处理程序:
源代码网推荐
源代码网推荐 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e as _
源代码网推荐 System.EventArgs) Handles Button1.Click
源代码网推荐 Static Counter as Integer = 0
源代码网推荐 Counter = 1
源代码网推荐 MessageBox.Show (" This button has been clicked " & _
源代码网推荐 Counter.ToString() & " times.")
源代码网推荐 End Sub
源代码网推荐
源代码网推荐 我们看到,宣告部分末尾的 Handles 子句把处理程序关联到特定的事件上。具体而言,上述代码将在 Button1.Click 事件发生时运行。这就是用于定义事件处理程序的典型语法。


源代码网推荐
源代码网推荐 为了实现 override ,你必须使用 Overridable 关键字,并且重新定义其可见性为 Protected 、 Protected Friend 或者 Public 。下面示范如何 override 事件处理程式:
源代码网推荐
源代码网推荐 Protected Overridable Sub Button1_Click(ByVal sender As System.Object, _
源代码网推荐 ByVal e as System.EventArgs) Handles Button1.Click
源代码网推荐 Static Counter as Integer = 0
源代码网推荐 Counter = 1
源代码网推荐 MessageBox.Show (" This button has been clicked " & _
源代码网推荐 Counter.ToString() & " times.")
源代码网推荐 End Sub
源代码网推荐
源代码网推荐 在组件中继承事件处理程序
源代码网推荐
源代码网推荐 事件处理程序的 override 固然与其它方法的 override 大同小异,有一点却不得不提:在 override 事件处理程序时必须除去 Handles 子句。
源代码网推荐
源代码网推荐 如何 override 组件的事件处理程序
源代码网推荐
源代码网推荐 1) 在事件处理程序的宣告部分加入 Overrides 关键字
源代码网推荐
源代码网推荐 请注意:不要附加 Handles 子句。因为父类的处理程序已经关联了特定事件,子类将继承这一切。换句话说,父类所关联的事件可以激活子类的处理程序,因而这里的 Handles 子句是多余的。
源代码网推荐 下面示范如何 override 前述事件处理程序:
源代码网推荐
源代码网推荐 Protected Overrides Sub Button1_Click(ByVal sender As System.Object, _
源代码网推荐 ByVal e as System.EventArgs)
源代码网推荐 Static Counter as Integer = 0
源代码网推荐 Counter = 1
源代码网推荐 MessageBox.Show (" This inherited button has been clicked " & _
源代码网推荐 Counter.ToString() & " times.")
源代码网推荐 End Sub
源代码网推荐
源代码网推荐 2) 为什么不需要 Handles 子句
源代码网推荐
源代码网推荐 前面提到,我们没有使用关联事件的 Handles 子句并不是一个疏漏,而是由 .NET 框架的事件处理机制所决定的。父类中的 Handles 子句将事件处理程序关联到特定事件上,这种关联将被子类继承。因此,即令子类中没有 Handles 子句,父类所关联的事件也能激活子类的事件处理程序。倘若此时加上 Handles 子句,则处理程序将被再次关联到事件上。重复关联的后果是处理程序将被连续激活两次。例如:
源代码网推荐
源代码网推荐 " 错误的代码
源代码网推荐 Protected Overrides Sub Button1_Click(ByVal sender As System.Object, _
源代码网推荐 ByVal e as System.EventArgs) Handles Button1.Click
源代码网推荐 Static Counter as Integer = 0
源代码网推荐 " 本例中使用了 Handles 子句,
源代码网推荐 " 因而每当按钮 Button1 被点击一次,

源代码网推荐

源代码网供稿.
网友评论 (0)
会员中心
网络编程
本站推荐
网络编程之精华