|
 |
栏目导栏 |
|
| |
|
|
|
|
 |
资料搜索 |
|
| |
|
|
|
|
 |
热门文章 |
|
| |
|
|
|
|
 |
最新文章 |
|
| |
|
|
|
| |
| |
|
|
|
|
相对来说,事件的使用是比较简单的。在使用前,我们必须先定义该事件,这就意味着通知Visual Basic什么事件被调用。一个事件可能有自己的参数,例如,一个Command按钮有一个Click(单击)事件,它没有参数。另外,文本编辑框有一个KeyPress事件,它通过一个叫"KeyAscii"的值来处理相关内容。 QPbLinux联盟 QPbLinux联盟 QPbLinux联盟 QPbLinux联盟 定义一个事件是在一个类的通用声明部分添加类似下面的代码: QPbLinux联盟 QPbLinux联盟
| Public Event MyEventName(PossArguments As String, Etc As Variant) | QPbLinux联盟 然后在代码调用RaiseEvent方法来激发一个事件。就像下面的代码一样: QPbLinux联盟 QPbLinux联盟
| RaiseEvent MyEventName("PossArgs", "Etc") | QPbLinux联盟 为了更好地说明上述添加和激发事件的过程,我们举一个例子。首先,定义一个事件: QPbLinux联盟 QPbLinux联盟 在CDog类的通用声明部分添加下列代码: QPbLinux联盟 QPbLinux联盟 QPbLinux联盟 在CDog类中添加Sleep子过程: QPbLinux联盟 QPbLinux联盟
Public Sub Sleep() QPbLinux联盟 QPbLinux联盟 Dim i As Long QPbLinux联盟 For i = 1 To 1000000 QPbLinux联盟 DoEvents: DoEvents: DoEvents QPbLinux联盟 exit QPbLinux联盟 RaiseEvent Awake QPbLinux联盟 End Sub QPbLinux联盟
| QPbLinux联盟 代码中,一开始做一些1000000次无用的循环,计算机短暂停顿后,Sleep子过程激发Awake事件。 QPbLinux联盟 QPbLinux联盟 但Awake事件产生后,我们应该让程序作相应的反应呢?当然,利用命令按钮是最简单的,只要在代码窗口的列表中选择命令按钮对象。 QPbLinux联盟 QPbLinux联盟 但是那样的话,我们必然需要一个控件,而且所见的内容都在表单上。这里我们纯粹使用相应的代码,并且是不可见的。 QPbLinux联盟 QPbLinux联盟 当然用代码来接收事件,还需要额外的操作: QPbLinux联盟 QPbLinux联盟 在表单代码窗口中的通用声明部分,添加下列代码: QPbLinux联盟 QPbLinux联盟
| Dim WithEvents MyDog As CDog | QPbLinux联盟 该代码不同于以前的MyDog声明,它有个关键词WithEvents用来通知Visual Basic该对象可以按收任何事件,而且该对象必须接收事件。 QPbLinux联盟 QPbLinux联盟 删除命令按钮中的所有代码;并在Command1中添加下列代码: QPbLinux联盟 QPbLinux联盟
Set MyDog = New CDog QPbLinux联盟 MyDog.Name = "Billy" QPbLinux联盟 MyDog.Bark QPbLinux联盟 MyDog.Sleep | QPbLinux联盟 该代码简单地将MyDog设置成CDog的一个新的实例,设置Name后,调用Bark,最后运行Sleep子过程。 QPbLinux联盟 QPbLinux联盟 现在添加一些代码来相应Awake事件。 QPbLinux联盟 QPbLinux联盟 在Form代码窗口中,从对象下拉列表中选择"MyDog"; QPbLinux联盟 QPbLinux联盟 在"MyDog"的"Awake"事件中,添加下列代码: QPbLinux联盟 QPbLinux联盟
Private Sub MyDog_Awake() QPbLinux联盟 QPbLinux联盟 MsgBox "Your pooch has awoken!" QPbLinux联盟 QPbLinux联盟 End Sub | QPbLinux联盟 好了,现在就可以测试了。 QPbLinux联盟 QPbLinux联盟 按F5运行程序; QPbLinux联盟 QPbLinux联盟 单击Command按钮; QPbLinux联盟 QPbLinux联盟 这样,当小狗Bark后,开始打盹,最后结束时还被你叫醒。真是神奇!
Linux联盟收集整理 ,转贴请标明原始链接,如有任何疑问欢迎来本站Linux论坛讨论 |
|
|
|
|
|