VBA控件教程:运行工程

2015-06-09 23:28 阅读 75 次 评论关闭

 F5 键运行该工程。观察 Form_Load 事件过程可知 New 操作符用于创建 Thing 对象。对该对象的引用赋给了变量 mth

InputBox 函数要求输入 Thing 的名称。输入名称并按 ENTER 键后,返回值被赋予 Thing 对象的 Name 属性。

显示窗体 Thing

可以通过按下第一个按钮“显示该 Thing”来验证所赋的 Name 属性值,此时将显示一个包含了 Thing 对象所有属性的消息框。

颠倒 Thing 的名称

按第二个按钮“颠倒该 Thing 的名称”。该按钮调用 ReverseName 方法把 Thing 对象的名称倒过来,然后按第一个按钮显示更新过的属性值。

创建新的 Thing

单击“创建新的 Thing”按钮撤消已存在的 Thing 对象后再创建一个新的对象。(或,反过来进行,创建一个新的 Thing 对象然后撤消旧的。)

New 操作符创建一个新的 Thing,因此可以看见新 Thing 的 Initialize 事件显示的消息框。单击“确定”,对新 Thing 的引用被赋给了窗体级的变量 mth

这样做清除了对旧的 Thing 的引用。由于不再有引用,所以它被撤消,因此可以看到 Terminate 事件的消息框。单击“确定”后,InputBox 语句要求输入新 Thing 的名称。

注意 如果希望在创建新的 Thing 之前撤消旧的,可以添加代码 Set mth = Nothing 到事件过程的开始部分。

临时的 Thing

第四个按钮演示了对象存活期的另一个方面。按下后,将提示输入临时 Thing 的名称。

可是等一等,这还不是一个临时的 Thing 对象。还没有见到其 Initialize 消息框,怎么赋给它名称呢?

由于变量 thTemp 已被 As New 声明过了,因此当一个属性或方法被使用时就会创建 Thing 对象。这将发生在输入框返回的值被赋给 Name 属性时。在输入框键入名称后单击“确定”。

此时可以看到 Initialize 的消息框,其中的 Name 属性还是空白。当单击“确定”关闭消息框后,InputBox 语句的值终于赋给了 Name 属性。看看这一行代码作了多少事。

当然,当完成了这一切后,Click 事件过程也结束了,变量 thTemp 也超出可见范围,对临时 Thing 的对象引用也被释放,因此可以看到 Thing 的 Terminate 消息框,注意其中包含所提供的名称。

每次单击该按钮将创建另一个临时 Thing,并进行命名,将它撤消。

关闭程序

单击窗体的“关闭”按钮可终止应用程序。不要使用工具栏上的 End 按钮。应用程序终止时,Form1 被撤消。变量mth 也超出可见范围,Visual Basic 清除对 Thing 的引用。由于已不存在对 Thing 的引用,因此被撤消并显示 Terminate 事件的消息框。

再次运行应用程序,这次用工具栏上的 End 按钮终止程序。注意这时没有显示 Thing 对象的 Terminate 消息框。

应特别记住使用 End 按钮终止应用程序或在代码中用 End 语句立即退出应用程序,并不能运行任何对象的 Terminate 事件。最好能通过卸载所有的窗体来关闭应用程序。

通过 F8 键以每次运行一行代码的形式运行示例,是一个很有用的方法。这有利于理解创建和撤消对象的事件的顺序。

重点 在实际的应用程序中,Initialize 和 Terminate 事件不应包含消息框或其它任何使 Windows 显示消息的代码。一般来说,调试对象的存活期时最好用 Debug.Print 语句。

详细信息 窗体和控件与其它对象有一些差别,这一点将在“Visual Basic 窗体的存活期”中讨论。

在“向类中添加属性和方法”和“向类中添加事件”这些节中可以读到更多有关使用类和类模块的信息。

版权声明:本文著作权归原作者所有,欢迎分享本文,谢谢支持!
转载请注明:VBA控件教程:运行工程 | 猎微网
分类:VBA 标签:, ,

评论已关闭!