设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2291|回复: 4
打印 上一主题 下一主题

ACCESS FAQ问答:隐藏ACCESS 主切换窗口

[复制链接]
跳转到指定楼层
1#
发表于 2002-4-20 23:56:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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编辑过]

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享分享 分享淘帖 订阅订阅
2#
发表于 2002-4-20 23:58:00 | 只看该作者
好例子啊,今天才知道openargs这个参数
3#
发表于 2002-4-21 00:27:00 | 只看该作者
还有tmtony总版主的那个在弹出式窗体中打开报表的例子应该可以解决这些问题,而且已经写成了公共函数。
4#
 楼主| 发表于 2002-4-21 00:38:00 | 只看该作者

ACCESS FAQ问答:隐藏ACCESS 主切换窗口

TONY版主比较喜欢举例子,这篇文章只是用来讲道理的。:)。

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

点击这里给我发消息

5#
发表于 2015-11-12 12:53:44 | 只看该作者
好例子啊,今天才知道openargs这个参数
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-2-23 16:28 , Processed in 0.088359 second(s), 28 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表