首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >分别显示/隐藏不同的自定义选项卡

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

Stack Overflow用户
提问于 2015-06-02 08:04:00
回答 2查看 611关注 0票数 0

我有我的自定义带标签,我想显示或隐藏他们中的一些在给定的事件。但是我想单独显示/隐藏它们,这样标签就不应该相互依赖或者类似的东西了。

我一直在尝试这个文档。这一个的例子,但是没有成功。

这是选项卡的带状XML:

代码语言:javascript
复制
<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代码:

代码语言:javascript
复制
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

在这里,我只试着使用其中的一个,至少让它工作(然后我将负责动态地传递标记属性)。但这行不通。

但是,如果我将GetVisible方法更改为以下方法:

代码语言:javascript
复制
Public Function GetVisible(control As Office.IRibbonControl)
    Return isVisible
End Function

它将工作,但两个选项卡同时。我想把它们分开控制。

有什么建议或教程吗?

更新:尝试从注释的建议中获得一些解决方案

XML仍然是一样的。VB代码:

代码语言:javascript
复制
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

但还是没有成功..。

EN

回答 2

Stack Overflow用户

发布于 2015-06-02 10:01:18

好吧,这看起来很愚蠢,我不知道为什么会这样,但是解决方案如下--我只是将GetVisibleSub更改为Function并删除了visible参数,所以我直接返回TrueFalse,如下所示:

代码语言:javascript
复制
Public Function GetVisible(control As Office.IRibbonControl)
    If control.Tag Like MyTag Then
        Return True
    Else
        Return False
    End If
End Function
票数 1
EN

Stack Overflow用户

发布于 2020-12-18 18:04:37

正确的回调签名过程类型是Sub,如果从GetVisible回调签名中删除"As Boolean“,它将按预期工作。

签名:https://learn.microsoft.com/en-us/previous-versions/office/developer/office-2007/aa722523(v=office.12)?redirectedfrom=MSDN

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30590602

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档