VB中RaiseEvent语句的功能及用法
2016-04-12 14:26
381 查看
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 is the 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 语句的语法有如下部分:
说明
如果在事件被引发的模块内该事件没有被声明,就会发生一个错误。下面这个程序片段说明了一个事件的声明以及一个引发该事件的过程。
[/code]
如果在 RaiseEvent 中该事件没有参数,包括空的圆括号,则对该事件的调用就会导致一个错误。不能使用 RaiseEvent 来引发在模块中没有明确定义的事件。例如,如果一个窗体有一个 Click 事件,则不能使用 RaiseEvent 来引发该窗体的 Click 事件。如果在窗体模块 中声明了一个 Click 事件,则它将覆盖窗体自己的 Click 事件。仍然可以使用调用该事件的正常语法来调用该窗体的 Click 事件,但是不能使用 RaiseEvent 语句。
事件的引发是根据连接建立的顺序来进行的。因为事件可以有 ByRef 参数,所以后来连接的进程可能接收已经被一个更早的事件处理程序更改的参数。
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 is the 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
[/code]
如果在 RaiseEvent 中该事件没有参数,包括空的圆括号,则对该事件的调用就会导致一个错误。不能使用 RaiseEvent 来引发在模块中没有明确定义的事件。例如,如果一个窗体有一个 Click 事件,则不能使用 RaiseEvent 来引发该窗体的 Click 事件。如果在窗体模块 中声明了一个 Click 事件,则它将覆盖窗体自己的 Click 事件。仍然可以使用调用该事件的正常语法来调用该窗体的 Click 事件,但是不能使用 RaiseEvent 语句。
事件的引发是根据连接建立的顺序来进行的。因为事件可以有 ByRef 参数,所以后来连接的进程可能接收已经被一个更早的事件处理程序更改的参数。
相关文章推荐
- vba 主题
- VB中的SSTab控件隐藏选项卡方法
- CBR编码与VBR编码
- VB使用API进行MD5加密解密
- VB下较为高效的字节和十六进制字符串转换
- 学习一个月vb6.0总结
- 确实还是字典法方便
- 顶点缓存对象(VBO)
- 无法打开模块文件,对象引用被隐藏
- VB6 加载控件Windows Common Controls 6.0(mscomctl.ocx)失败提示“对象库未注册”
- AVB传输协议数据包分析
- AVB 的上位机控制软件怎么玩?
- 学习vb的心得体会
- 对vb感受(下)
- 对vb感受(上)
- VB.net机房收费系统小问题之变量赋值前被使用
- 做完VB后的感言
- 工程设计人员VB开发注意几个问题
- VBA窗体转VB方法
- VB.net版机房收费系统——结账功能实现(调错与优化)