弹出方式、模式、对话框边框与acDialog参数透析-咱家是猫
Access软件网QQ交流学习群(群号码198465573),欢迎您的加入!
首页 >技术文章> Access数据库-窗体/数据页


弹出方式、模式、对话框边框与acDialog参数透析

发表时间:2008/1/4 22:05:05 评论(6) 浏览(18810)  评论 | 加入收藏 | 复制
   
摘 要:弹出方式、模式、对话框边框与acDialog参数透析
正 文:

在窗体的属性中有[弹出方式]、[模式]、[边框样式]几个属性,在打开窗体的VBA命令中有acDialog参数,下面详细讲下这几个属性和这个参数的作用。

在讲之前,先阐述下“对话框”概念:简单的讲,对话框窗体即打开后显示是程序最上端,在关闭它之前,会暂禁止用户对此程序内此窗体以外的其他对象的操作。按照微软的帮助信息里所述,创建一个对话框窗体需要对窗体作以下设置:

  1. 在“弹出方式”属性框中,单击“是”。
  2. 在“模式”属性框中,单击“是”选项。
  3. 在“边框样式”属性框中,单击“对话框边框”。
  4. 在“记录选择器”属性框中,单击“否”。
  5. 在“导航按钮”属性框中,单击“否”。
  6. 在“分隔线”属性框中,单击“否”。

注:关键是前3条,后3条只是对“对话框”窗体的美化。

OK,对话框的概念先点到为止。下面先讲讲[边框样式]

一 [边框样式]

属性中[边框样式](BorderStyle)有以下选择:无/细边框/可调边框/对话框边框,其他几个与本主题无关,就说说这个“无边框边框”,如果设置了“无边框边框”则本窗体有个粗边框,并且只能包含一个标题栏、“关闭”按钮和“控制”菜单。窗体不能最大化、最小化或调整大小(“控制”菜单上的“最大化”、“最小化”和“大小”命令也不可用)。但这些,仅仅是实现一个对话框窗体的一部分,它只是设置了一个框架,要实现真正的对话框窗体还需要很多其他的设置。

二 [弹出方式]

属性中的这个弹出方式(PopUp)有两个选择:是/否(True/False),把窗体的弹出方式设置为:是,将实现打开它后,它停留在其他所有窗口的上面。如果有两个弹出方式为“是”的窗体同时打开,则它俩会根据焦点的获得需相互覆盖。注:此属性在窗体运行状态与不可更改(可读不可写)。

三 [模式]

属性中的这个模式(Modal)同样有两个选择:是/否(True/False),当窗体(或报表)的模式设为“是”后,打开它后,在焦点移到另一个对象之前,必须先关闭该窗口。注:此属性在窗体运行状态下可读写。

设置好上面3个属性,再加上所开头所述的美化,一个对话框窗体基本就设置好了。但是,注意了,我说了但是,对于上面设置出来的窗体,也只能称之为伪对话框(可能是我一面之辞),为什么这么说呢,因为即然是对话框,理论上说,就应该禁止用户对程序内本窗体外其他所有对象的操作。但实事上,这样设置好的窗体并没有做到这一步,到VBA窗体中测试一下,更改代码就知道了,一切还是畅通无阻。是的,问题就出在这里,不要以为我是在吹毛求疵,可能有时候你的疑惑正出在这里,

举个例子来讲,一个“窗体A”如上所设。我们来写一个代码

DoCmd.OpenForm "窗体A"

DoCmd.Close acForm, "窗体B"

运行这两句代码,你不要指望在运行第一句后,直到“窗体A”关闭后,才运行第二句。事实上它会一气哈成的运行完。这就是我之所以称之为伪对话框的原因。

那么,如果程序需要,一定要运行第一句后,直到“窗体A”关闭后才运行第二句该怎么做呢?

还好,微软在打开窗体时提供了一个参数"WindowMode",可选项有:

AcWindowMode 可以是下列 AcWindowMode 常量之一:
acDialog 窗体的 Modal 和 PopUp 属性设为“是”。
acHidden 窗体隐藏。
acIcon 打开窗体并在 Windows 工具栏中最小化。
acWindowNormal 默认值 窗体采用它的属性所设置的模式

现在我们只关心那个acDialog,上面的描述来自帮助信息,里面说了,acDialog 参数等于窗体的 Modal 和 PopUp 属性设为“是”。事实上它并非这么简单,它——真正实现了一个对话框窗体。在打开窗体的命令行上带上它,就可以实现我们上面的要求了。

代码更改如下:

DoCmd.OpenForm "窗体A",,,,,acDialog

DoCmd.Close acForm, "窗体B"

测试下吧,看看效果如何,哈哈......讲到这里,此篇文章也该结束了,希望对你有所帮助。

有什么不同看法,欢迎斧正。


Access软件网交流QQ群(群号:198465573)
 
 相关文章
打开access“工具”菜单中“选项”对话框的函数  【网行者  2011/7/1】
调用字体,前景色,背景色对话框\用代码改变文本框背景色、颜色  【叶海峰  2012/7/19】
通用对话框  【杜超-2号  2013/7/13】
【译文】当用户删除一条记录时,显示一个自定义的对话框  【周芳  2013/8/13】
常见问答
技术分类
相关资源
文章搜索
关于作者

咱家是猫

文章分类

文章存档

友情链接