Visual Basic COM基础讲座之事件
来源:互联网 发布:吉林省软件行业协会 编辑:程序博客网 时间:2024/05/17 05:19
相对来说,事件的使用是比较简单的。在使用前,我们必须先定义该事件,这就意味着通知Visual Basic什么事件被调用。一个事件可能有自己的参数,例如,一个Command按钮有一个Click(单击)事件,它没有参数。另外,文本编辑框有一个KeyPress事件,它通过一个叫"KeyAscii"的值来处理相关内容。
定义一个事件是在一个类的通用声明部分添加类似下面的代码:
然后在代码调用RaiseEvent方法来激发一个事件。就像下面的代码一样:
为了更好地说明上述添加和激发事件的过程,我们举一个例子。首先,定义一个事件:
在CDog类的通用声明部分添加下列代码:
在CDog类中添加Sleep子过程:
代码中,一开始做一些1000000次无用的循环,计算机短暂停顿后,Sleep子过程激发Awake事件。
但Awake事件产生后,我们应该让程序作相应的反应呢?当然,利用命令按钮是最简单的,只要在代码窗口的列表中选择命令按钮对象。
但是那样的话,我们必然需要一个控件,而且所见的内容都在表单上。这里我们纯粹使用相应的代码,并且是不可见的。
当然用代码来接收事件,还需要额外的操作:
在表单代码窗口中的通用声明部分,添加下列代码:
该代码不同于以前的MyDog声明,它有个关键词WithEvents用来通知Visual Basic该对象可以按收任何事件,而且该对象必须接收事件。
删除命令按钮中的所有代码;并在Command1中添加下列代码:
该代码简单地将MyDog设置成CDog的一个新的实例,设置Name后,调用Bark,最后运行Sleep子过程。
现在添加一些代码来相应Awake事件。
在Form代码窗口中,从对象下拉列表中选择"MyDog";
在"MyDog"的"Awake"事件中,添加下列代码:
好了,现在就可以测试了。
按F5运行程序;
单击Command按钮;
这样,当小狗Bark后,开始打盹,最后结束时还被你叫醒。真是神奇!
定义一个事件是在一个类的通用声明部分添加类似下面的代码:
Public Event MyEventName(PossArguments As String, Etc As Variant) |
然后在代码调用RaiseEvent方法来激发一个事件。就像下面的代码一样:
RaiseEvent MyEventName("PossArgs", "Etc") |
为了更好地说明上述添加和激发事件的过程,我们举一个例子。首先,定义一个事件:
在CDog类的通用声明部分添加下列代码:
Public Event Awake() |
在CDog类中添加Sleep子过程:
Public Sub Sleep() Dim i As Long For i = 1 To 1000000 DoEvents: DoEvents: DoEvents exit RaiseEvent Awake End Sub |
代码中,一开始做一些1000000次无用的循环,计算机短暂停顿后,Sleep子过程激发Awake事件。
但Awake事件产生后,我们应该让程序作相应的反应呢?当然,利用命令按钮是最简单的,只要在代码窗口的列表中选择命令按钮对象。
但是那样的话,我们必然需要一个控件,而且所见的内容都在表单上。这里我们纯粹使用相应的代码,并且是不可见的。
当然用代码来接收事件,还需要额外的操作:
在表单代码窗口中的通用声明部分,添加下列代码:
Dim WithEvents MyDog As CDog |
该代码不同于以前的MyDog声明,它有个关键词WithEvents用来通知Visual Basic该对象可以按收任何事件,而且该对象必须接收事件。
删除命令按钮中的所有代码;并在Command1中添加下列代码:
Set MyDog = New CDog MyDog.Name = "Billy" MyDog.Bark MyDog.Sleep |
该代码简单地将MyDog设置成CDog的一个新的实例,设置Name后,调用Bark,最后运行Sleep子过程。
现在添加一些代码来相应Awake事件。
在Form代码窗口中,从对象下拉列表中选择"MyDog";
在"MyDog"的"Awake"事件中,添加下列代码:
Private Sub MyDog_Awake() MsgBox "Your pooch has awoken!" End Sub |
好了,现在就可以测试了。
按F5运行程序;
单击Command按钮;
这样,当小狗Bark后,开始打盹,最后结束时还被你叫醒。真是神奇!
- Visual Basic COM基础讲座之事件
- Visual Basic COM基础讲座之简介
- Visual Basic COM基础讲座之属性
- Visual Basic COM基础讲座之兼容性
- Visual Basic COM基础讲座之(一)
- Visual Basic COM基础讲座之(二)
- Visual Basic COM基础讲座之(三)
- Visual Basic COM基础讲座之(四)
- Visual Basic COM基础讲座之
- Visual Basic COM基础讲座之类的建立
- Visual Basic COM基础之更多属性
- Visual Basic图像处理基础讲座
- VB COM基础讲座之创建第一个COM对象
- Visual C++.NET编程基础讲座之二
- Visual C++.NET编程基础讲座之三
- Visual C++.NET编程基础讲座之四
- Visual C++.NET编程基础讲座之五
- VB COM基础讲座之可重用性
- 一个自私鬼的心情杂记
- VB COM编程基础之子过程函数和参数
- 学会看oracle SQL语法图
- ebxml
- [爆笑]吃了伟哥的公鸡
- Visual Basic COM基础讲座之事件
- The Strategy, Template Method, and Bridge Patterns
- Digester can not parse well in orion server
- VB COM基础讲座之可重用性
- 公司突然解散,就这么失业了,真的很郁闷。
- 每日编译的入门实践[收藏]
- 神州数码高级副总裁兼通用信息产品事业本部总经理毛向前 渠道复合化成新趋势
- 利用Timer类实现"显示时间"的功能
- .NET资源站点汇总[转载]