依赖于你要实现的,若在窗体关闭时运行代码将返回错误。在你运行代码前应该确认窗体是打开的。正像我要在下面要解释的代码实例一样,确定窗体状态仅需一些简单的过程。如果你不为你的客户额外的做这些事,他们将发现存在问题。
SysCmd函数提供了检测一个窗体是否开启的最简便的方法。特别地,这个函数返回一个对象的状态,但就本篇而言,我们只关心窗体。在Listing A中的过程返回真值或是假值,依赖于SysCmd函数是否找到了开启的指定窗体。
简单的传递一个窗体的名字(以字符串的方式),如果窗体是打开的,函数返回真值;否则,函数返回假值。我们不需要很明确的声明假值,因为布尔函数过程在默认时返回假值。
你可以很容易的在立即窗口中测试这个过程。打开一个窗体,例如Northwind(Access自带的示例数据库)数据库中的客户窗体,然后将以下的语句输入到VB编辑器立即窗口中:
?FrmStatus("Customers")
像你在特征A中看到的,函数返回了一个真值。回到Northwind数据库并转换到客户窗体的设计视图。当你在立即窗口中运行了相同的一段语句,它仍然返回一个真值。从技术上说,这是有意义的。窗体是打开的;故在功能上有了限制。现在,关掉客户窗体后再一次在立即窗口中运行这段代码。这次,语句返回了假值,因为窗体是关闭的。