分别显示/隐藏不同的自定义选项卡
我有我的自定义function区选项卡,我想在给定的事件显示或隐藏其中的一些。 但是我想单独显示/隐藏它们,所以标签不应该依赖于彼此或者类似的东西。
我一直在尝试从这个文档的例子。 而这一个却没有成功。
这是选项卡的function区XML:
<tab id="t1" label="CustomTab" getVisible="GetVisible" tag="xtab"> <!-- some other elements --> </tab> <tab id="t2" label="CustomTab_2" getVisible="GetVisible" tag="xtab_2"> <!-- some other elements --> </tab>
和VB代码:
Private isVisible As Boolean = False Public Sub GetVisible(control As Office.IRibbonControl, ByRef returnedVal As Boolean) returnedVal = isVisible End Sub Private Sub RefreshRibbon(Tag As String) ribbon.Invalidate() End Sub Public Sub show_xtab(ByVal control As Office.IRibbonControl) isVisible = True Call RefreshRibbon(Tag:="xtab") End Sub Public Sub hide_xtab(ByVal control As Office.IRibbonControl) isVisible = False Call RefreshRibbon(Tag:="xtab") End Sub
在这里,我正在尝试与其中的一个,至less让这个工作(然后我会照顾dynamic地传递标签属性)。 但是这不起作用。
但是,如果我将GetVisible
方法更改为以下内容:
Public Function GetVisible(control As Office.IRibbonControl) Return isVisible End Function
它将工作,但两个选项卡同时。 我想分开控制它们。
任何build议或教程?
更新:从评论的build议尝试了一些解决scheme
XML仍然是一样的。 VB代码:
Public MyTag as String Sub GetVisible(control As Office.IRibbonControl, ByRef visible As Boolean) If control.Tag Like MyTag Then visible = True Else visible = False End If End Sub Private Sub RefreshRibbon(Tag As String) MyTag = Tag ribbon.Invalidate() End Sub Public Sub show_xtab(ByVal control As Office.IRibbonControl) Call RefreshRibbon(Tag:="xtab") End Sub Public Sub show_xtab_2(ByVal control As Office.IRibbonControl) Call RefreshRibbon(Tag:="xtab_2") End Sub
但仍然没有成功…
好吧,这似乎很愚蠢,我不知道它为什么这样工作,但解决scheme是以下 – 我只是将GetVisible
从Function
更改GetVisible
,并删除visible
参数,所以我直接返回True
或False
,如下所示:
Public Function GetVisible(control As Office.IRibbonControl) If control.Tag Like MyTag Then Return True Else Return False End If End Function