以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  点击页面选项按钮隐藏页面集合的页面  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=165244)

--  作者:采菊东篱下
--  发布时间:2021/5/11 17:19:00
--  点击页面选项按钮隐藏页面集合的页面

我在主界面的AfterLoad事件中写了:

\'隐藏页面集合

For i As Integer = 7 To 10

    Dim pg(i) As WinForm.TabPage

    pg(i) = Forms("主界面").Controls("TabControl1").TabPages(i)

    pg(i).Visible = False

Next

然后在任务栏的TopicLinkClick事件中写上:

Select Case e.Link.Text

    Case "资产"

        Dim pg7 As WinForm.TabPage = Forms("主界面").Controls("TabControl1").TabPages(7)

        pg7.Visible = True

        Dim tab As WinForm.TabControl = e.Form.Controls("TabControl1")

        tab.SelectedIndex = 7

    Case "负债"

        Dim pg8 As WinForm.TabPage = Forms("主界面").Controls("TabControl1").TabPages(8)

        pg8.Visible = True

        Dim tab As WinForm.TabControl = e.Form.Controls("TabControl1")

        tab.SelectedIndex = 8

    Case "所有者权益"

        Dim pg9 As WinForm.TabPage = Forms("主界面").Controls("TabControl1").TabPages(9)

        pg9.Visible = True

        Dim tab As WinForm.TabControl = e.Form.Controls("TabControl1")

        tab.SelectedIndex = 9

    Case "损益"

        Dim pg10 As WinForm.TabPage = Forms("主界面").Controls("TabControl1").TabPages(10)

        pg10.Visible = True

        Dim tab As WinForm.TabControl = e.Form.Controls("TabControl1")

        tab.SelectedIndex = 10

End Select

我在SelectedIndexChanged事件写了:

If Forms("主界面").Controls("TabControl1").SelectedIndex >= 7 Then
  Forms("主界面").Controls("TabControl1").SelectedPage.Visible = False
End If
想实在点任务栏按钮显示隐藏任务,点页面集集合按钮,隐藏页面,但写了红色代码后,点任务栏按钮就不起作用了,不能显示页面,去除红色代码才能显示页面,请教如何实现我要的效果?

--  作者:有点蓝
--  发布时间:2021/5/11 17:32:00
--  
去掉SelectedIndexChanged代码

TopicLinkClick事件中写上:

Dim tab As WinForm.TabControl = e.Form.Controls("TabControl1")

For i As Integer = 7 To 10

    tab.TabPages(i).Visible = False

Next

Select Case e.Link.Text

    Case "资产"

        Dim pg7 As WinForm.TabPage = tab.TabPages(7)

        pg7.Visible = True

        tab.SelectedPage = pg7

……


--  作者:采菊东篱下
--  发布时间:2021/5/11 17:55:00
--  
点任务栏按钮只能显示,不能再隐藏。
[此贴子已经被作者于2021/5/11 17:55:37编辑过]

--  作者:采菊东篱下
--  发布时间:2021/5/11 18:01:00
--  
我想点击按钮把已经显示的页面再隐藏。
--  作者:有点蓝
--  发布时间:2021/5/11 20:04:00
--  

Dim tab As WinForm.TabControl = e.Form.Controls("TabControl1")

For i As Integer = 7 To 10

    tab.TabPages(i).Visible = False

Next


--  作者:采菊东篱下
--  发布时间:2021/5/11 20:49:00
--  
你这方法是打开一个页面,同时关闭已打开的页面,始终有一个页面打开,我要的效果是可以一个个随意关闭这几个页面的效果。刚才我在任务栏的TopicPageCollapsed事件里写了这段代码:
Dim tp As WinForm.TopicPage = Forms("主界面").Controls("TopicBar1").Pages("会计科目")
For i As Integer = 7 To 10
    e.Form.Controls("TabControl1").TabPages(i).Visible = False
Next
可以实现点击任务栏按钮关闭添加显示的所有页面,但这是关闭所有,不是一个个页面关闭。

--  作者:有点蓝
--  发布时间:2021/5/11 21:02:00
--  
只关闭一个页面?

e.Form.Controls("TabControl1").TabPages(0).Visible = False
e.Form.Controls("TabControl1").TabPages("某页面名称").Visible = False

--  作者:采菊东篱下
--  发布时间:2021/5/11 21:27:00
--  
这代码写在哪?写在TabControl1控件的SelectedIndexChanged事件?我试过不行,写在这就无法显示想添加的页面。


--  作者:有点蓝
--  发布时间:2021/5/11 21:54:00
--  
放到按钮,或者任务栏点击事件里。
--  作者:采菊东篱下
--  发布时间:2021/5/11 22:40:00
--  
只能另外做一个关闭按钮,执行这样的代码,能不能实现点一下打开,再点一下是关闭呢?