自动关闭与隐藏

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

本课的内容,请参考CaseStudy目录下的示例文件“窗口筛选.table”。


本页地址:http://www.foxtable.com/webhelp/topics/1059.htm