以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  关于窗口的自动关闭!  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=1785)

--  作者:woodiy
--  发布时间:2009/2/11 20:55:00
--  关于窗口的自动关闭!
在菜单中,利用控件,可以实际打开表的同时,打开窗口,如:
Maintables=table("客户")
Forms("客户").open()

现在有一个问题,就是利用菜单在不断打开表与窗口的时候,会不断的增加新的窗口, 请问有什么办法,在菜单中打开窗口的同时,能够关闭关前表的所有窗口呢?谢谢!
--  作者:smileboy
--  发布时间:2009/2/11 21:24:00
--  

自动关闭与隐藏

本课的内容仅针对独立型窗口,因为其它类型的窗口并不存在自动隐藏的问题。
我们已经知道,独立窗口是可以共享的,独立窗口一旦打开,切换到其他主表后,窗口仍然是可见的。
有的时候我们并不希望这样,例如有一个设计好的窗口,名为“订单筛选”,我们希望进入订单表的时候,该窗口能够自动打开,而离开订单表的时候,能够自动关闭。
实现这个要求的代码很简单,只需将项目的MainTableChanged事件设为:

If MainTable.Name = "订单" Then
    Forms(
"订单筛选").Show()
Else

    Forms(
"订单筛选").Close()
End
If

但是还有一点不足,因为离开订单表的时候,窗口被关闭了,窗口位置以及所输入的内容会全部丢失,能不能在离开订单表的时候,只是暂时隐藏窗口,而不关闭窗口?
当然可以,只需上面的代码改为:

If MainTable.Name = "订单" Then
    Forms(
"订单筛选").Show()
Else

    Forms(
"订单筛选").Visible = False
End
If

还有一个问题,你可能并不希望自动打开窗口,只是希望对于已经打开的窗口,能够自动显示和隐藏,满足这种要求的代码为:

If MainTable.Name = "订单" Then
    Forms(
"订单筛选")
.Visible = True
Else

    Forms(
"订单筛选").Visible = False
End
If


--  作者:狐狸爸爸
--  发布时间:2009/2/11 21:53:00
--  
帮助里头有很多宝藏,等着大家去发现。
--  作者:blackzhu
--  发布时间:2009/2/12 8:34:00
--  
以下是引用woodiy在2009-2-11 20:55:00的发言:
在菜单中,利用控件,可以实际打开表的同时,打开窗口,如:
Maintables=table("客户")
Forms("客户").open()

现在有一个问题,就是利用菜单在不断打开表与窗口的时候,会不断的增加新的窗口, 请问有什么办法,在菜单中打开窗口的同时,能够关闭关前表的所有窗口呢?谢谢!

加一个关闭窗口的命令就行了.