以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  选定不同页面问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=88923)

--  作者:落叶孤影
--  发布时间:2016/8/11 17:29:00
--  选定不同页面问题

老师,我在窗口的SelectedIndexchanged事件设置了如下代码,当选择页面为0时屏幕有点花屏,感觉像是代码执行比较一样,其他都正常。我把代码换到SelectedIndexchanging事件试了,更不行,有什么办法可以解决吗?谢谢!

Dim qh As WinForm.TabControl = e.Form.Controls("主切换页面")
If SystemMenu = False Then \' 如果当前菜单为自定义菜单
    If qh.SelectedIndex = 0 Then
        RibbonTabs("数据录入").Visible = False
        RibbonTabs("查询表").Visible = False
    Else If user.Group = "财务经理" Then
        RibbonTabs("查询表").Visible = True
        RibbonTabs("数据录入").Visible = False
    Else
        RibbonTabs("查询表").Visible = False
        RibbonTabs("数据录入").Visible = True
    End If
End If

[此贴子已经被作者于2016/8/11 17:32:53编辑过]

--  作者:大红袍
--  发布时间:2016/8/11 18:20:00
--  

 这样处理一下

 

Dim qh As WinForm.TabControl = e.Form.Controls("主切换页面")
If SystemMenu = False Then \' 如果当前菜单为自定义菜单

Dim a As C1Ribbon.C1Ribbon = BaseMainForm.controls("C1Ribbon1")
a.BeginUpdate()

    If qh.SelectedIndex = 0 Then
        RibbonTabs("数据录入").Visible = False
        RibbonTabs("查询表").Visible = False
    Else If user.Group = "财务经理" Then
        RibbonTabs("查询表").Visible = True
        RibbonTabs("数据录入").Visible = False
    Else
        RibbonTabs("查询表").Visible = False
        RibbonTabs("数据录入").Visible = True
    End If

a.EndUpdate()
End If


--  作者:落叶孤影
--  发布时间:2016/8/11 19:31:00
--  
嗯,比之前代码好多了,但还是不完美!还稍微有点闪屏。如果换到SelectedIndexchanging事件中,代码该如果写呢?
--  作者:大红袍
--  发布时间:2016/8/11 20:09:00
--  
If SystemMenu = False Then \' 如果当前菜单为自定义菜单

Dim a As C1Ribbon.C1Ribbon = BaseMainForm.controls("C1Ribbon1")
a.BeginUpdate()

lockbasemainform
    If qh.SelectedIndex = 0 Then
        RibbonTabs("数据录入").Visible = False
        RibbonTabs("查询表").Visible = False
    Else If user.Group = "财务经理" Then
        RibbonTabs("查询表").Visible = True
        RibbonTabs("数据录入").Visible = False
    Else
        RibbonTabs("查询表").Visible = False
        RibbonTabs("数据录入").Visible = True
    End If

unlockbasemainform

a.EndUpdate()
End If


--  作者:落叶孤影
--  发布时间:2016/8/11 21:00:00
--  

算了,还是用原来的代码吧,用这个代码菜单就不动了!对了,假如有一个页面集合,里面有6个TabPages,TabPages(0)、TabPages(1)、TabPages(2)......TabPages(6),如何只显示TabPages(0),让其他的全部隐藏?代码该怎么写?除了先把TabPages(1)--TabPages(6)一个一个隐藏,然后一个一个再取消隐藏!

[此贴子已经被作者于2016/8/11 21:37:47编辑过]

--  作者:大红袍
--  发布时间:2016/8/11 21:44:00
--  

 必须一个一个的隐藏