VB中RaiseEvent语句的功能及用法

前端之家收集整理的这篇文章主要介绍了VB中RaiseEvent语句的功能及用法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

Creat a new class named Class1,it's codes like this:

Public Event MyEvent()

Public Sub RaiseTheEvent()
'some other codes here
RaiseEvent MyEvent

End Sub

Create a new form,draw a command on it named Command1,double the command to open the code.

It codes like this:

Option Explicit

Private WithEvents Myclass As class1


Private Sub Command1_Click()
Set Myclass = New class1
Call Myclass.RaiseTheEvent 'In this sub event is raised.

End Sub

Private Sub Myclass_MyEvent()'this isthe sub to dill with the event.
MsgBox "class1's event occured."
End Sub

Start the application and Click the button will raise the event.

引发在一个类、窗体、或者文档中的模块级中声明的一个事件。

语法

RaiseEvent eventname [(argumentlist)]

必需的 eventname 是在模块 中声明的,并且符合 Basic 变量命名约定的一个事件的名称

RaiseEvent 语句的语法有如下部分:

部分 描述
Eventname 必需的。所引发的事件的名称
Argumentlist 可选的。用逗号分隔的变量、数组,或者表达式的列表。argumentlist 必须用圆括号括起来。如果没有参数,则圆括号必须被忽略。

说明

如果在事件被引发的模块内该事件没有被声明,就会发生一个错误。下面这个程序片段说明了一个事件的声明以及一个引发该事件的过程。

在类模块的模块级声明一个事件



引发该事件。
   

'Event logonCompleted (UserName as String)Sub'RaiseEvent logonCompleted ("AntoineJan")End Sub

如果在 RaiseEvent 中该事件没有参数,包括空的圆括号,则对该事件的调用就会导致一个错误。不能使用 RaiseEvent 来引发在模块中没有明确定义的事件。例如,如果一个窗体有一个 Click 事件,则不能使用 RaiseEvent 来引发该窗体的 Click 事件。如果在窗体模块 中声明了一个 Click 事件,则它将覆盖窗体自己的 Click 事件。仍然可以使用调用该事件的正常语法来调用该窗体的 Click 事件,但是不能使用 RaiseEvent 语句。

事件的引发是根据连接建立的顺序来进行的。因为事件可以有 ByRef 参数,所以后来连接的进程可能接收已经被一个更早的事件处理程序更改的参数。

原文链接:https://www.f2er.com/vb/261186.html

猜你在找的VB相关文章