设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

ACCESS如何隐藏主切换窗口

2015-4-22 15:00| 发布者: admin| 查看: 2090| 评论: 4|原作者: 大熊|来自: www.office-cn.net

摘要: Q:我有一个ACCESS主切换窗口,其中的四个命令按钮使用DoCmd.OpenForm分别显示特定窗体,我想当其中任何一个按钮按下时可以隐藏主窗体,而当用该按钮打开的窗体关闭时,恢复主窗体。我该如何做? A:良好的程序设计 ...
Q:我有一个ACCESS主切换窗口,其中的四个命令按钮使用DoCmd.OpenForm分别显示特定窗体,我想当其中任何一个按钮按下时可以隐藏主窗体,而当用该按钮打开的窗体关闭时,恢复主窗体。我该如何做?

A:良好的程序设计需要严谨的用户介面控制,从而使用户只见到需要显示的窗体,太多的窗体会使用户有无所适从感,从而降低工作效率。

有两种不同的方法可以用来隐藏主切换窗口,具体采用哪种主法取决于你设计的程序的复杂性。

第一种主法非常简单,关于主切换窗口在打开新窗体按钮的Click事件中,使用第二个窗体的Unload事件来重新打开主切换窗口。

示例1:

'在主窗口
Private Sub cmdOpen1_Click()
DoCmd.Close acForm, Me.Name
DoCmd.OpenForm "Form1"
End Sub

'在第二个窗口
Private Sub Form_Unload(Cancel As Integer)
DoCmd.OpenForm "frmSwitchboard"
End Sub

这里唯一的问题是打开或关闭主窗体可能会比较慢,如果窗体复杂、包含绑定数据、或者有很大的图片在其中等。第二种主法使用设定窗口的visible的方法来避免以上问题。


示例2:
'在主窗体
Private Sub cmdOpen2_Click()
Me.Visible = False
DoCmd.OpenForm "Form2"
End Sub

'在第二个窗体
Private Sub Form_Unload(Cancel As Integer)
Forms!frmSwitchboard.Visible = True
End Sub

但是这里面还有一个问题是这个范例通过Name来引用主窗口,我们应该考虑用OpenArgs参数来传递主窗口的Name至第二个窗口,然后使用第二个窗口的OpenArgs属性来恢复主窗口。

范例3:

'在主窗体
Private Sub cmdOpen3_Click()
Me.Visible = False
DoCmd.OpenForm "Form3", OpenArgs:=Me.Name
End Sub

'在第二个窗体
Private Sub Form_Unload(Cancel As Integer)
Forms(Me.OpenArgs).Visible = True
End Sub

范例3可以让你避免生硬的编码方式,这意味着第二个窗口可以被你的应用程序中的其它窗口打开而不必考虑应该恢复哪一个主窗口。


[此贴子已经被大熊于2002-4-20 15:56:11编辑过]

发表评论

最新评论

引用 xinbao 2002-4-20 23:58
好例子啊,今天才知道openargs这个参数
引用 huanghai 2002-4-21 00:27
还有tmtony总版主的那个在弹出式窗体中打开报表的例子应该可以解决这些问题,而且已经写成了公共函数。
引用 大熊 2002-4-21 00:38
TONY版主比较喜欢举例子,这篇文章只是用来讲道理的。:)。

各位高手看得懂TONY版主的精彩范例的,就不用看这篇文章了,惭愧,惭愧。
[此贴子已经被大熊于2002-4-20 16:38:13编辑过]

引用 WFH6898 2015-11-12 12:53
好例子啊,今天才知道openargs这个参数

查看全部评论(4)

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-4-25 14:49 , Processed in 0.098545 second(s), 23 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

返回顶部