以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  切换表时自动关闭当前表的窗口  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=23335)

--  作者:foxstudent
--  发布时间:2012/9/9 13:01:00
--  切换表时自动关闭当前表的窗口
我的表中的窗口都是独立窗口,通过左侧导航栏打开表的时候同时打开窗口,但是在切换其他表的时候,必须手动关闭原来表的窗口,应该怎么样才能实现只要离开当前表,该表的窗口就自动关闭?
--  作者:Fotable
--  发布时间:2012/9/9 14:07:00
--  
forms("你要关的窗口").close
--  作者:foxstudent
--  发布时间:2012/9/9 14:38:00
--  
以下是引用Fotable在2012-9-9 14:07:00的发言:
forms("你要关的窗口").close

这个方法跟手动关闭差不多,可能您误会了我的意思,

假如我有5个表,Ta、Tb、Tc、Td、Te,

5个窗口W1、W2、W3、W4、W5,

导航栏对于Ba、Bb、Bc、Bd、Be共5个按钮,

现在点按钮Bb,打开的是表Tb,窗口W2,我现在要点Ba,可以在用代码 forms("W2").close ,但是如果刚才打开的是TC和W3,再加一句forms("W3").close,以此类推,如果我有几十个表和几十个窗口,难道必须要每个按钮上都把所有的窗口关闭命令都写一遍吗?

 


--  作者:狐狸爸爸
--  发布时间:2012/9/9 14:46:00
--  

关闭所有已经打开的窗口:

 

For Each frm As WinForm.Form in Forms

     If frm.Opened Then

         frm.Close

     End if

Next

 

 

 


--  作者:foxstudent
--  发布时间:2012/9/9 14:58:00
--  
以下是引用狐狸爸爸在2012-9-9 14:46:00的发言:

关闭所有已经打开的窗口:

 

For Each frm As WinForm.Form in Forms

     If frm.Opened Then

         frm.Close

     End if

Next

 

 

狐爸,您的这个方法把导航栏的共有窗口一起关闭了

 

 


--  作者:狐狸爸爸
--  发布时间:2012/9/9 15:00:00
--  
For Each frm As WinForm.Form in Forms
     if frm.Name <> "导航窗口名" Then
          If frm.Opened Then
              frm.Close
          End if
     End if
Next

--  作者:foxstudent
--  发布时间:2012/9/9 15:11:00
--  
哈,我真笨,怎么没想到只要加个判断条件就可以了!