以编程方式从功能区获取功能区控件

时间:2013-09-20 14:15:30

标签: vsto ms-office ribbon-control office-addins

我正在开发vsto,我想在功能区上隐藏一些控件 特别是我需要隐藏菜单 - 在主页选项卡中的样式组上更改样式。 我试图通过xml:

来做到这一点
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" onLoad="Ribbon_Load">
  <ribbon>
    <tabs>
      <tab idMso="TabHome">
        <group idMso="GroupStyles">
          <menu idMso="ChangeStylesMenu" visible="0"/>
        </group>
      </tab>

    </tabs>
  </ribbon>
</customUI>

但菜单仍然可见 看起来我无法得到这种控制。 我的问题是任何人都可以获得这种控制权 通过xml或通过代码? 顺便说一句,以编程方式获取ribboncontrols的方式是什么。 我知道有RibbonGroup类,但我不知道如何加载它(如何通过id获取它) 如果我能做到这一点,我会得到属于它的所有项目。 有什么想法吗?

1 个答案:

答案 0 :(得分:2)

以下是在C#中执行此操作的一种方法:

// disable all controls in ribbon
foreach (RibbonGroup group in Globals.Ribbons.MyRibbon.MyTab.Groups)
{
    foreach (RibbonControl control in group.Items)
    {
        control.Enabled = false;
    }
}

请注意,MyTab是功能区中选项卡的名称(controlID)。