Vb.net 事件
代码示例
Sub TestEvents()
Dim Obj As New Class1 ' 实例化类
AddHandler Obj.Ev_Event, AddressOf EventHandler ' 关联事件
Obj.CauseSomeEvent() ' 调用对象方法,将引发事件处理
RemoveHandler Obj.Ev_Event, AddressOf EventHandler ' 取消关联,停止事件处理
Obj.CauseSomeEvent() ' 调用对象方法,不会引发事件处理
End Sub
Sub EventHandler()
MsgBox("EventHandler caught event.") ' 处理事件
End Sub
Public Class Class1
Public Event Ev_Event() ' 声明事件
Sub CauseSomeEvent()
RaiseEvent Ev_Event() ' 引发事件
End Sub
End Class
事件处理过程
事件
事件是用来告知应用程序,一些重要的事情的发生。
事件发送器
一个可以引发一个事件的对象是一个事件发送器。
事件的声明
在类中,事件的声明是用关键字Event来进行的:
Event AnEvent(Byval EventNumber As Integer)
事件的引发
事件就象一件非常重要的事情发生了,而宣布这件重要的事情的行为就叫做事件的引发。事件必须使用RaiseEvent关键字来引发。下面的例子引发了一个名为AnEvent的事件:
RaiseEvent AnEvent(EventNumber)
事件的处理
事件的处理是当一个相关事件发生以后调用的一个过程。
把事件和事件处理联系起来
在一个事件处理可以使用之前,用户需要把它和一个事件用WithEvents或者AddHandler联系起来。
给一个类加事件
用户可以通过使用Events表述来声明一个类的事件,声明包含了事件的名称和参数。例:
Public Event PercentDone(Byval Percent AS Single,_
ByRefCancel As Boolean)
事件总是被声明为公有的,而且,事件没有返回值、可选参数或者数组参数。
给一个类加一个事件说明了只要是这种类的对象就能够引发这种特定的事件,用户需要使用RaiseEvent表述来让一个事件真正运行起来,一旦事件运行起来以后,用户就可以使用WithEvents或者AddHandler把事件和事件处理过程联系起来。
相关关键字:
Handles
声明某个过程处理一个指定事件。
proceduredeclaration Handles eventlist
Proceduredeclaration:将处理事件的过程的 Sub 过程声明。
Eventlist:要处理的 proceduredeclaration 的事件的列表。此事件必须由当前类的基类或已使用 WithEvents 关键字声明的对象引发。
AddHandler
在运行时将事件与事件处理程序相关联。
AddHandler event, AddressOf eventhandler
event :要处理的事件的名称。
eventhandler :将处理事件的过程的名称。
AddHandler 和 RemoveHandler 语句使您可以在程序执行过程中的任何时候启动和停止事件处理。
Handles 关键字和 AddHandler 语句都允许您指定特定过程处理特定事件,但有一些不同。AddHandler 语句在运行时将过程连接到事件。
Event
声明用户定义的事件。
可以像声明过程参数那样声明事件参数,不同之处为:事件不能具有命名参数、ParamArray 参数或 Optional 参数。事件没有返回值。
RaiseEvent
触发类、窗体或文档中在模块级声明的事件。
RaiseEvent eventname[( argumentlist )]
eventname
必选。要触发的事件的名称。
argumentlist
可选。以逗号分隔的变量、数组或表达式的列表。
WithEvent
指定一个或多个已声明成员变量引用可引发事件的类的实例。
当某个变量是使用 WithEvents 定义时,您可以用声明方式指定某个方法使用 Handles 关键字处理该变量的事件。只能使用 WithEvents 声明单个变量,不能声明数组。
事件关联的两种方式 handles 和 AddHandler 比较
WithEvents 语句和 Handles 子句提供了陈述性指定事件处理程序的方法。WithEvents 所声明对象引发的事件可以由任何子例程用命名此事件的 Handles 子句来处理。虽然 Handles 子句是关联事件与事件处理程序的标准方法,它仅限于在编译时关联事件与事件处理程序。
例:
Dim WithEvents EClass As New EventClass
Sub TestEvents()
EClass.RaiseEvents()
End Sub
Sub EClass_EventHandler() Handles EClass.XEvent, EClass.YEvent
MsgBox("Received Event.")
End Sub
Class EventClass
Public Event XEvent()
Public Event YEvent()
Sub RaiseEvents()
RaiseEvent XEvent()
RaiseEvent YEvent()
End Sub
End Class
注意:
不能把 WithEvents 变量用作对象变量。即,不能将它声明为 Object,在声明变量时必须指定类名称。
不能创建 WithEvents 变量数组。
AddHandler 和 RemoveHandler 语句要比 Handles 子句更灵活。它们允许在运行时动态地将事件与一个或更多的事件处理程序连接或者断开,而并不要求使用 WithEvents 来声明对象变量。
例:
Public Sub EHandler(ByVal EventNumber As Integer)
MsgBox("Received event number " & CStr(EventNumber))
End Sub
Public Sub TestAddHandler()
Dim CI As New Class1
End Sub
AddHandler CI.AnEvent, AddressOf EHandler
相关推荐
在VB.NET编程环境中,开发摄像头相关的应用程序是一项常见的需求,尤其在多媒体、监控或者视频会议等领域。本项目"VB.Net_Camera.rar"提供了一个简单的实例,教你如何利用VB.NET实现摄像头拍照的功能。下面将详细...
《VB.NET教程——Visual Basic .NET深度学习指南》 Visual Basic .NET(简称VB.NET)是微软公司推出的面向对象的编程语言,它是.NET框架的一部分,为开发者提供了强大的开发工具和丰富的功能,尤其适合快速应用程序...
例如,如何将 VB6 的过程转换为 VB.Net 的方法,如何使用 VB.Net 的控件替代 VB6 的控件,以及如何处理事件和异常等。 源码的实践运行是理解这些概念的关键步骤。在 Visual Studio 中打开项目,编译并运行代码,...
在VB.NET 2010环境下,MODBUS通信是一个常用的技术,用于设备间的数据交换,特别是在工业自动化领域。本项目是作者初次尝试使用VB.NET 2010实现RS485 MODBUS通信,这对于初学者或者需要进行MODBUS协议编程的开发者来...
VB.Net to C# Converter(代码转换工具) v2.23 VB.Net to C Sharp Converter 是一款将vb.net代码转化为c#代码的程序。在转化过程中,保留了原有的注释和变量名。 VB.Net to C# Converter是一款代码转换软件,将用户...
转换过程中,"VB.Net to C# Converter"会考虑各种VB.Net的特性,如事件处理、循环结构、条件语句、类定义等,并尽可能准确地映射到C#的对应语法。然而,需要注意的是,某些VB.Net特有的语法特性在C#中可能没有直接...
综上所述,VB.NET下的MQTT服务器和客户端开发涉及到网络通信、协议解析、事件处理等多个方面的知识,通过使用像MqttNet这样的库,可以简化开发过程,提高开发效率。理解这些概念和技巧,对于在VB.NET环境中构建MQTT...
VB.NET 2008是微软公司开发的一种编程语言,它是Visual Basic的.NET版本,用于构建Windows桌面应用程序、Web应用程序和移动设备应用。这个“VB.NET 2008速成精简版”可能是一个特别设计的教学或者入门版本,旨在帮助...
4. **事件处理**:VB.NET的事件处理模型基于委托和事件,而在Java中通常通过接口和监听器实现。 5. **异常处理**:VB.NET的Try...Catch...Finally需要转换为Java的try...catch...finally。 6. **LINQ转换**:如果VB...
标题中的"C#转换成vb.net工具"是一款专门用于将C#编程语言的代码转换为VB.NET语言的软件。这个工具的目的是帮助程序员在两种.NET框架下的语言之间进行快速的代码迁移,尤其对于那些熟悉C#但需要处理VB.NET项目的人来...
5. 保存并构建VB.NET项目:在确认代码无误后,保存转换后的VB.NET文件,并创建一个新的VB.NET项目。将转换后的源代码添加到新项目中,然后编译和运行以验证功能是否正常。 需要注意的是,虽然工具能够自动化大部分...
VB.NET是微软公司推出的.NET框架下的一种面向对象的编程语言,它是Visual Basic的现代版本,与传统的VB6.0有着显著的区别。VB.NET是为适应不断发展的软件开发环境而诞生的,它支持更多的现代编程特性,如泛型、匿名...
4. **事件处理**:VB.NET使用Handles关键字,C#使用事件委托和+=操作符。 5. **字符串操作**:VB.NET的字符串拼接通常使用&,C#使用+或string.Format。 6. **异常处理**:VB.NET的On Error和Try...Catch...Finally...
5. **VB.NET编程基础**:理解VB.NET的基本语法、控件使用和事件处理是实现摄像头调用的前提。例如,可能需要创建一个按钮控件来触发打开摄像头的事件,或者处理来自摄像头的视频流数据。 6. **视频流处理**:当成功...
### 从VB6升级到VB.NET的关键知识点 #### 一、概述 - **VB6与VB.NET的区别**:Microsoft Visual Basic.NET(简称VB.NET)是继Visual Basic 6.0之后的一个全新版本,该版本完全基于.NET框架进行设计,旨在为开发者...
6. 自定义事件与回调函数:VB.NET串口助手可能提供了丰富的事件触发机制,允许用户根据需求编写自定义的处理函数,实现高度定制化的串口通信逻辑。 总之,VB.NET串口助手是VB.NET开发者进行串口通信调试的理想工具...
VB.NET是.NET框架下的一种编程语言,完全支持多语言应用程序的开发。本篇文章将详细介绍如何在VB.NET中为WinForm应用实现多语言功能,包括多语言切换和程序的国际化。 首先,我们需要了解.NET框架中的资源管理。在...
总结,VB.NET计算器项目是一个很好的学习实践平台,它涉及到了用户界面设计、事件驱动编程、数值计算、异常处理等多个核心概念。通过这个项目,开发者可以深入理解VB.NET的语法和.NET框架的功能,同时提升解决实际...
VB.NET 读写 INI 文件 INI 文件是一种常用的配置文件格式,广泛应用于 Windows 操作系统中。VB.NET 提供了读写 INI 文件的功能,使得开发者可以轻松地实现应用程序的配置管理。本文将详细介绍如何使用 VB.NET 读写 ...
3. **事件驱动编程**:VB.NET中的控件支持事件,允许开发者通过响应用户交互(如按钮点击)来编写逻辑。 4. **LINQ(Language Integrated Query)**:VB.NET引入了集成查询语言,使得在代码中查询数据更加直观和...