• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

Visual Basic COM基础讲座之事件

发布: 2007-6-21 21:57 | 作者:   | 来源:   | 查看: 14次 | 进入软件测试论坛讨论

领测软件测试网

   


  相对来说,事件的使用是比较简单的。在使用前,我们必须先定义该事件,这就意味着通知Visual Basic什么事件被调用。一个事件可能有自己的参数,例如,一个Command按钮有一个Click(单击)事件,它没有参数。另外,文本编辑框有一个KeyPress事件,它通过一个叫"KeyAscii"的值来处理相关内容。



   定义一个事件是在一个类的通用声明部分添加类似下面的代码:

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后,开始打盹,最后结束时还被你叫醒。真是神奇!

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网