Foxtable(狐表)用户栏目专家坐堂 → 若切换至“窗口3”,则自动打开“窗口4”,并关闭除“窗口3”和“窗口4”以外的所有窗口,


  共有1627人关注过本帖树形打印复制链接

主题:若切换至“窗口3”,则自动打开“窗口4”,并关闭除“窗口3”和“窗口4”以外的所有窗口,

帅哥哟,离线,有人找我吗?
fengwenliuyan
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:901 积分:8247 威望:0 精华:0 注册:2012/10/19 13:55:00
若切换至“窗口3”,则自动打开“窗口4”,并关闭除“窗口3”和“窗口4”以外的所有窗口,  发帖心情 Post By:2019/8/8 10:17:00 [只看该作者]

有4个窗口:窗口1、窗口2、窗口3、窗口4。
若“窗口1”打开,则只打开“窗口2”,
若切换至“窗口3”,则自动打开“窗口4”,并关闭除“窗口3”和“窗口4”以外的所有窗口,
同理,若切换至“窗口1”,则自动打开“窗口2”,并关闭除“窗口1”和“窗口2”以外的所有窗口,
这应该怎样做到?

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107304 积分:545781 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/8/8 10:43:00 [只看该作者]

1、如果窗口1和窗口3是独立或者模式窗口:

全局代码:
Public  Sub Form_Activated(ByVal sender As Object, ByVal e As System.EventArgs)
'定义一个窗体被激活的事件
    If forms.ActiveForm IsNot Nothing Then
        Functions.Execute("Form_Activated")  '这里自己写个函数处理
    End If
End Sub

窗口1和窗口3,afterload事件
AddHandler e.form.baseform.Activated, AddressOf Form_Activated

函数Form_Activated
Dim frm As WinForm.Form = Forms.ActiveForm
If frm.Name = "窗口1" AndAlso Forms("窗口2").Opened = False Then
    Forms("窗口2").show
End If

2、如果窗口1和窗口3不是独立或者模式窗口
窗口1和窗口3,afterload事件
    For Each frm As WinForm.Form In Forms 
        If frm.Name = "窗口3" OrElse frm.Name = "窗口4"
            If frm.Name = "窗口4" AndAlso frm.Opened = False Then
                frm.Open
            End If
        ElseIf frm.Opened
            frm.Close
        End If
    Next

MainTableChanged事件
If MainTable.Name = "表B(窗口1和窗口3的所有者表
)" AndAlso Forms("窗口3").Opened  Then
    For Each frm As WinForm.Form In Forms 
        If frm.Name = "窗口3" OrElse frm.Name = "窗口4"
            If frm.Name = "窗口4" AndAlso frm.Opened = False Then
                frm.Open
            End If
        ElseIf frm.Opened
            frm.Close
        End If
    Next
End If

 回到顶部