知识大全 使用Visual Basic.NET重载事件处理程序

Posted 事件

篇首语:落花踏尽游何处,笑入胡姬酒肆中。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 使用Visual Basic.NET重载事件处理程序相关的知识,希望对你有一定的参考价值。

使用Visual Basic.NET重载事件处理程序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  前提

  您应该非常了解继承和面向对象的编程 有关详细信息 请参阅 Polymorphism in Components(英文)

  继承的事件处理程序

  在继承某个组件时 该组件的所有成员都被并入新类中 事件处理程序是在响应组件接收的特定事件时执行的方法 并且它是和其他组件成员一同被继承的 以下示例显示了一个典型的事件处理程序

  Private Sub Button _Click(ByVal sender As System Object ByVal e as _System EventArgs) Handles Button ClickStatic Counter as Integer = Counter += MessageBox Show ( 此按钮已被单击 & _Counter ToString() & 次 )End Sub

  只要发生 Button Click 事件 就会执行以上方法 方法声明末尾的 Handles 子句将方法与事件进行关联 这是组件中事件处理程序的典型结构

  为了在继承类中重载此方法 必须添加 Overridable 关键字 并将访问级别更改为 Protected Protected Friend 或 Public 以下示例显示了一个可以被重载的事件处理程序

  Protected Overridable Sub Button _Click(ByVal sender As System Object _ByVal e as System EventArgs) Handles Button ClickStatic Counter as Integer = Counter += MessageBox Show ( 此按钮已被单击 & _Counter ToString() & 次 )End Sub

  组件中继承的事件处理程序

  重载继承的事件处理程序与重载任何其他类型的继承方法基本相同 唯一不同之处在于 在重载继承的事件处理程序时 必须删除 Handles 子句

  重载继承组件中的方法

  将 Overrides 关键字添加到方法声明中

  注意 不要在方法中添加 Handles 子句 事件处理程序已经与基类中的事件相关联 并且此关联将传递到继承类中 也就是说 当引发事件时将执行此方法 而不再需要额外的 Handles 子句

  以下示例显示了如何重载前面示例中的事件处理程序

  Protected Overrides Sub Button _Click(ByVal sender As System Object _ByVal e as System EventArgs)Static Counter as Integer = Counter += MessageBox Show ( 此继承的按钮已被单击 & _Counter ToString() & 次 )End Sub

  为什么不需要 Handles 子句

  Handles 子句不再与此方法相关联 这并不是疏忽 而是 NET 框架处理事件的一项重要内容 事件处理程序已经与基类中的事件相关联 并且此关联将传递到继承类中 也就是说 当引发事件时将执行此方法 而不再需要额外的 Handles 子句 如下所示 如果添加 Handles 子句 将创建与事件的附加关联 这会使方法在每个事件中被执行两次

   不正确的代码Protected Overrides Sub Button _Click(ByVal sender As System Object _ByVal e as System EventArgs) Handles Button ClickStatic Counter as Integer = 每次单击按钮时 此变量将递增 两次 Counter += 每次单击按钮时 消息框将显示 两次 并显示不准确的信息 MessageBox Show ( 此继承的按钮已被单击 & _Counter ToString() & 次 )End Sub

  总结

cha138/Article/program/net/201311/11642

相关参考

知识大全 Visual Basic.Net基本语句

VisualBasic.Net基本语句  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一Try…

知识大全 Visual Basic.Net实现TCP协议

VisualBasic.Net实现TCP协议  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!TCP协

知识大全 实战Visual Basic.Net对话框

实战VisualBasic.Net对话框  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  对话框和

知识大全 Visual Basic.NET中组件的叠加使用

VisualBasic.NET中组件的叠加使用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  状

知识大全 Visual Basic .Net打造个性化菜单

VisualBasic.Net打造个性化菜单  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  菜单

知识大全 使用 Visual Basic .NET 访问注册表

使用VisualBasic.NET访问注册表  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!使用Vi

知识大全 一步一步创建Visual Basic .NET 控件

一步一步创建VisualBasic.NET控件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!我从来

知识大全 Visual Basic.Net引人注目的语言革新

VisualBasic.Net引人注目的语言革新  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 Visual Basic.NET和GDI+共创图标编辑器

VisualBasic.NET和GDI+共创图标编辑器  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧

知识大全 在Visual Basic.NET使用ADO访问数据库

在VisualBasic.NET使用ADO访问数据库  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!