VBA控件教程:加载但不显示

2015-06-07 18:28 阅读 54 次 评论关闭

Load 事件标志着此状态的开始。一旦窗体进入加载状态,Form_Load 事件过程中的代码就开始执行。

Form_Load 事件过程开始后,窗体上的所有控件都被创建和加载,而且该窗体有了一个窗口─ 是通过窗口句柄 (hWnd) 和设备描述体 (hDC) 完成的,尽管该窗口还未被显示。

任何窗体只有加载后才能可见。

很多窗体自动从创建但不加载状态进入加载但不显示状态。窗体如果满足以下的条件就会自动加载:

  • 该窗体在“工程属性”对话框的“通用”选项卡中被指定为启动对象。
  • 窗体中首先被调用的属性或方法是 Show 方法,正如示例 Form1.Show
  • 首先被调用的窗体属性或方法是窗体内置的成员,如上述例子中是 Move 方法。

    注意 因为每个控件定义了窗体的一个属性,所以这种情况包括了窗体的所有控件;也就是说,为了访问 Command1 的 Caption 属性,就必须经过窗体的 Command1 属性:Command1.Caption

  • 正如早些时候所述的,可以用 Load 语句加载窗体,而无需首先使用 New 或 As New 创建该窗体。

从不显示的窗体

上述的前两种情况,一旦 Form_Load 执行完毕,窗体就直接可见。而后面的两种情况,窗体将保持加载状态,但不显示。

在 Visual Basic 中编程时,常常加载了某一窗体但从未予显示。这样做有以下的原因:

  • 用时钟控件产生计时事件。
  • 用功能控件,而不是用户界面控件。例如,串行通信或访问系统文件。
  • 执行 DDE 事务。

注意 对于 VBP 和 VBE,可以创建 ActiveX 部件(以前称为OLE服务端),这比控件更有利于提供纯代码功能。请参阅《部件工具指南》中的“创建 ActiveX 部件”。

总是返回的根状态

任何时候,只要隐藏了窗体,它就总是从可见状态回到加载状态。回到加载状态并不重新执行 Load 事件。Form_Load 在窗体的存活期中只运行一次。

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

评论已关闭!