分别显示/隐藏不同的自定义选项卡

我有我的自定义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是以下 – 我只是将GetVisibleFunction更改GetVisible ,并删除visible参数,所以我直接返回TrueFalse ,如下所示:

 Public Function GetVisible(control As Office.IRibbonControl) If control.Tag Like MyTag Then Return True Else Return False End If End Function