Visual Basic COM基础讲座之事件

原创 2004年11月02日 08:57:00
 相对来说,事件的使用是比较简单的。在使用前,我们必须先定义该事件,这就意味着通知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后,开始打盹,最后结束时还被你叫醒。真是神奇!

Visual Basic COM基础讲座之(二)

VB COM基础讲座之可重用性 还记得我们是怎么将一个类添加到标准的Visual Basic工程中的?   是的,一流的COM体系的最大特点是其代码的可重用性。  换句话说,如果用Visual Bas...
  • guyehanxinlei
  • guyehanxinlei
  • 2007年04月13日 17:12
  • 751

Visual Basic COM基础讲座之兼容性

在本教程第二部分的最后,我们遇到一个小问题,但确切地说,那实际上是一个大问题。如果有时间的话,这个问题应该值得我们花大精力去研究。  还记得我们是怎样遇到那个问题吗?当时,我们先编译ActiveX D...
  • naive1010
  • naive1010
  • 2004年11月02日 09:54
  • 892

Visual Basic COM基础讲座之(一)

Visual Basic COM基础讲座之简介 "世上无难事,只要肯登攀",所以你要有信心成为一个COM程序员,而且你一定能。   事实上,我们每次设置文本编程控件的Text属性时,就已经在使用COM...
  • guyehanxinlei
  • guyehanxinlei
  • 2007年04月13日 17:09
  • 1060

Visual Basic COM基础讲座之简介

"世上无难事,只要肯登攀",所以你要有信心成为一个COM程序员,而且你一定能。   事实上,我们每次设置文本编程控件的Text属性时,就已经在使用COM,同样在DAO数据控件运行MoveNext方法时...
  • naive1010
  • naive1010
  • 2004年11月02日 08:35
  • 876

Visual Basic COM基础讲座之(三)

 VB COM基础讲座之建立测试程序 这里我们直接创建一个应用程序来测试一下前面生成的ActiveX EXE文件监视组件:   新建一个"Standard EXE"工程;下面需要添加一个引用到我们的新...
  • guyehanxinlei
  • guyehanxinlei
  • 2007年04月13日 17:17
  • 684

Visual Basic COM基础讲座之属性

属性操作很像公共变量,但属性还有更多的控制。   常用属性通常包括"Get(获取)"和"Let(设置)"两种。这两项操作能规定一个主要属性,就像下面的代码片段:  Private intAge As ...
  • naive1010
  • naive1010
  • 2004年11月02日 08:43
  • 941

Visual Basic COM基础讲座之

简介   首先,COM是一种通信的方式。 例如,就像我们的电视遥控一样。当我们按下某个频道按钮时,电视频道立马切换;而当我们按下开关按钮时,电视立即关闭等等。其实,我们并不关心它们是怎样工作的,我们只...
  • yiyiyicz
  • yiyiyicz
  • 2013年09月14日 19:29
  • 744

Visual Basic COM基础讲座之(四)

VB COM基础讲座之编译的实例选项  在测试文件组件之前,我们必须先编译它。但在进行这项工作之前,让我们先来浏览一下Visual Basic所给出来的一些额外选项。  在打开FileCheck代码窗...
  • guyehanxinlei
  • guyehanxinlei
  • 2007年04月13日 17:20
  • 511

Visual Basic图像处理基础讲座

Visual Basic图像处理基础讲座  ⊙技术开发专题精选新年贺礼 2004年开发专题精选回顾 2004开发技术年度综述 软件技术和职业的顶峰:架构与架构师基于Visual Basic的COM入门...
  • ark1111
  • ark1111
  • 2005年02月17日 15:18
  • 1203

Visual Basic COM基础之更多属性

 有时候,为了更好地处理类往往需更多的属性。例如,假如你有四种不同的客户群:集团、较大、较小和新的客户类型,或者一个用于搜索的类中有三种不同的搜索方式:软盘、硬盘和网络。那么,能不能最好从选项列表中选...
  • naive1010
  • naive1010
  • 2004年11月02日 08:47
  • 947
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Visual Basic COM基础讲座之事件
举报原因:
原因补充:

(最多只允许输入30个字)