色带加载后更改色带菜单属性

时间:2018-11-12 07:02:41

标签: ms-office vsto ribbonx

我构建了一个VSTO(由Ribbon Designer创建,而不使用Ribbon XML)。是否可以从Ribbon1.cs更改Tab的属性(如标签)?

我什至无法使用:

更改功能区标题。
    private void Ribbon1_Load(object sender, RibbonUIEventArgs e)
    {
        myRibbon.Label = "something";
    }

1 个答案:

答案 0 :(得分:0)

动态执行此操作的方法是使用回调。

在功能区XML中:

<tab id="myTabID" getLabel="myCallback">
  ....
</tab>

在功能区代码中:

public string myCallback(IRibbonControl control)
{
    switch (control.Id)
    {
        case "myTabID":
            return "My Label";
        case "whatever else":
        default:
            return "n/a";
    }
}

无论何时显示选项卡,都会执行回调,因此可能会在启动时执行。当您实际上想要更改显示内容时,必须使其无效:

ribbon.Invalidate();
// or
ribbon.InvalidateControl(id);