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编辑过]
|