`
liuhun3083053
  • 浏览: 16777 次
社区版块
存档分类
最新评论

Vb.net 事件

阅读更多

 

                       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

 

0
0
分享到:
评论

相关推荐

    VB.Net_Camera.rar_VB.NET 摄像头_vb.net 拍照_vb.net 摄像头_vb.net摄像头

    在VB.NET编程环境中,开发摄像头相关的应用程序是一项常见的需求,尤其在多媒体、监控或者视频会议等领域。本项目"VB.Net_Camera.rar"提供了一个简单的实例,教你如何利用VB.NET实现摄像头拍照的功能。下面将详细...

    VB.NET.rar_.net 教程_VB.net教程_Visual Basic.Net_vb.net_vb.net 实例

    《VB.NET教程——Visual Basic .NET深度学习指南》 Visual Basic .NET(简称VB.NET)是微软公司推出的面向对象的编程语言,它是.NET框架的一部分,为开发者提供了强大的开发工具和丰富的功能,尤其适合快速应用程序...

    VB.Net2010VB6转VB.Net(高清视频+源码).zip

    例如,如何将 VB6 的过程转换为 VB.Net 的方法,如何使用 VB.Net 的控件替代 VB6 的控件,以及如何处理事件和异常等。 源码的实践运行是理解这些概念的关键步骤。在 Visual Studio 中打开项目,编译并运行代码,...

    VB.NET2010_MODBUS.zip_VB MODBUS_modbus vb_vb modbus_vb.net RS4

    在VB.NET 2010环境下,MODBUS通信是一个常用的技术,用于设备间的数据交换,特别是在工业自动化领域。本项目是作者初次尝试使用VB.NET 2010实现RS485 MODBUS通信,这对于初学者或者需要进行MODBUS协议编程的开发者来...

    vb.net下的MQTT服务器、客户端

    综上所述,VB.NET下的MQTT服务器和客户端开发涉及到网络通信、协议解析、事件处理等多个方面的知识,通过使用像MqttNet这样的库,可以简化开发过程,提高开发效率。理解这些概念和技巧,对于在VB.NET环境中构建MQTT...

    VB.Net to C# Converter将VB代码转换成C#代码

    转换过程中,"VB.Net to C# Converter"会考虑各种VB.Net的特性,如事件处理、循环结构、条件语句、类定义等,并尽可能准确地映射到C#的对应语法。然而,需要注意的是,某些VB.Net特有的语法特性在C#中可能没有直接...

    VB.NET C# 互转 Convert

    4. **事件处理**:VB.NET使用Handles关键字,C#使用事件委托和+=操作符。 5. **字符串操作**:VB.NET的字符串拼接通常使用&,C#使用+或string.Format。 6. **异常处理**:VB.NET的On Error和Try...Catch...Finally...

    VB.NET视频教程|如何学习VB.NET|VB.NET比VB6.0哪个好

    VB.NET是微软公司推出的.NET框架下的一种面向对象的编程语言,它是Visual Basic的现代版本,与传统的VB6.0有着显著的区别。VB.NET是为适应不断发展的软件开发环境而诞生的,它支持更多的现代编程特性,如泛型、匿名...

    C#代码项目转换VB.NET项目代码(可整个项目转换)

    5. 保存并构建VB.NET项目:在确认代码无误后,保存转换后的VB.NET文件,并创建一个新的VB.NET项目。将转换后的源代码添加到新项目中,然后编译和运行以验证功能是否正常。 需要注意的是,虽然工具能够自动化大部分...

    VB.NET转JAVA工具

    4. **事件处理**:VB.NET的事件处理模型基于委托和事件,而在Java中通常通过接口和监听器实现。 5. **异常处理**:VB.NET的Try...Catch...Finally需要转换为Java的try...catch...finally。 6. **LINQ转换**:如果VB...

    C#转换成vb.net工具

    标题中的"C#转换成vb.net工具"是一款专门用于将C#编程语言的代码转换为VB.NET语言的软件。这个工具的目的是帮助程序员在两种.NET框架下的语言之间进行快速的代码迁移,尤其对于那些熟悉C#但需要处理VB.NET项目的人来...

    从vb6升级到vb.net

    ### 从VB6升级到VB.NET的关键知识点 #### 一、概述 - **VB6与VB.NET的区别**:Microsoft Visual Basic.NET(简称VB.NET)是继Visual Basic 6.0之后的一个全新版本,该版本完全基于.NET框架进行设计,旨在为开发者...

    VB.net 调用本地摄像头实例

    5. **VB.NET编程基础**:理解VB.NET的基本语法、控件使用和事件处理是实现摄像头调用的前提。例如,可能需要创建一个按钮控件来触发打开摄像头的事件,或者处理来自摄像头的视频流数据。 6. **视频流处理**:当成功...

    ChuanKouTiaoShi.rar_vb.net 串口助手_串口助手 vb.net_全功能串口调试助手vb.net源码_调试

    6. 自定义事件与回调函数:VB.NET串口助手可能提供了丰富的事件触发机制,允许用户根据需求编写自定义的处理函数,实现高度定制化的串口通信逻辑。 总之,VB.NET串口助手是VB.NET开发者进行串口通信调试的理想工具...

    VB.net 计算器.rar_VB.net计算器_vb.net_计算器VB.net

    总结,VB.NET计算器项目是一个很好的学习实践平台,它涉及到了用户界面设计、事件驱动编程、数值计算、异常处理等多个核心概念。通过这个项目,开发者可以深入理解VB.NET的语法和.NET框架的功能,同时提升解决实际...

    VB.NET]读写INI文件

    VB.NET 读写 INI 文件 INI 文件是一种常用的配置文件格式,广泛应用于 Windows 操作系统中。VB.NET 提供了读写 INI 文件的功能,使得开发者可以轻松地实现应用程序的配置管理。本文将详细介绍如何使用 VB.NET 读写 ...

    VB.NET源码帝国初学者chm教程

    在VB.NET的UI设计方面,教程将涵盖Windows Forms的应用,教授如何创建用户界面,添加控件,以及处理用户交互事件。这对于开发桌面应用程序至关重要。同时,也会涉及WPF(Windows Presentation Foundation)技术,它...

    VB.NET教程中高级篇

    在VB.NET中,中高级主题通常包括但不限于面向对象编程(OOP)、异常处理、多线程、高级数据访问、文件和流操作、网络编程、反射、委托和事件、LINQ以及自定义控件和用户界面设计。下面,我们将详细探讨这些关键知识...

    vb.net编程实例(内含完整程序和代码)

    6. **事件处理**:VB.NET中的控件事件处理,如Click、TextChanged等,通过AddHandler关键字实现事件订阅。 7. **集合和数组**:ArrayList和Generic.List是常用的动态数组,Dictionary, TValue>用于键值对存储。 8....

    VB.Net摄像头程序源代码

    在VB.Net中开发摄像头程序是一项常见的任务,尤其在多媒体应用、视频监控或视频会议系统等领域。VB.Net(Visual Basic .Net)是微软公司推出的面向对象的编程语言,它提供了丰富的库和API,使得开发者能够方便地访问...

Global site tag (gtag.js) - Google Analytics