RELATEED CONSULTING
相关咨询
选择下列产品马上在线沟通
服务时间:9:30-18:00
你可能遇到了下面的问题
关闭右侧工具栏
Event 语句
  • 作者:zhaozj
  • 发表时间:2020-12-23 10:37
  • 来源:未知

Event 语句

     

定义用户自定义的事件。

语法

[Public] Event procedurename [(arglist)]

Event 语句包含下面部分:

部分 描述 Public 可选的。指定该 Event 在整个工程中都是可见的。缺省情况下 Events 类型是 Public。应注意,事件只能在所声明的模块中产生。 procedurename 必需的。事件的名称;遵循标准的变量命名约定。

arglist 参数的语法及语法的各个部分如下:

[ByVal | ByRef] varname[( )] [As type]

部分 描述 ByVal 可选的。表示该参数是按值传递的。 ByRef 可选的。表示该参数是按地址传递的。ByRef 是 Visual Basic 的缺省设置。 varname 必需的。代表要传递给过程的参数变量的名称;遵循标准的变量命名约定。 type 可选的。指传递给过程的参数的数据类型;可以是 Byte、布尔、Integer、Long、Currency、Single、Double、Decimal(目前尚不支持)、Date、String(只支持变长)、Object、Variant、用户定义类型或对象类型。

说明

事件被声明之后,就可以使用 RaiseEvent 语句来产生该事件。如果在标准模块中出现 Event 声明,就会产生语法错误。不能声明带返回值的事件。在下面的代码段中,给出了声明事件和产生事件的典型事件:

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

Event LogonCompleted (UserName as String)

Sub   RaiseEvent LogonCompleted("AntoineJan")End Sub

注意 可以象声明过程的参数一样来声明事件的参数,但有以下不同:事件不能有带命名参数、Optional 参数、或者 ParamArray 参数。事件没有返回值。

Event 语句示例下面的示例是在百米赛跑演示中使用事件来计时。代码说明了所有与事件相关的方法、属性和语句,包括 Event 语句。

产生事件的类是事件源,实现该事件的类则是事件吸收。一个事件源可以有多个针对其所产生的事件的漏。事件可以被每个选定出为对象的实例吸收事件的类所触发。

该示例使用了一个窗体 (Form1),该窗体有一个按钮 (Command1),一个标签 (Label1),以及两个文本框 (Text1 和 Text2)。单击按钮后,第一个文本框显示 "From Now",第二个文本框中时钟开始计时。当经过 9.84 秒(百米记录)之后,第一个文本框显示 "Until Now",第二个则显示 "9.84"。

Form1 代码用于指定该窗体的初始状态和终止状态,也包含了事件产生后所要执行的代码。

Option Explicit

Private WithEvents mText As TimerState

Private Sub Command1_Click()Text1.Text = "From Now"    Text1.Refresh    Text2.Text = "0"    Text2.RefreshCall mText.TimerTask(9.84)End Sub