【问题标题】:VSTO Excel: separate ribbons for different add-insVSTO Excel:不同加载项的单独功能区
【发布时间】:2023-01-31 04:35:27
【问题描述】:

我有两个独立的 VSTO Excel 加载项项目 (Excel 365),每个项目都创建一个新的 Excel 功能区,比方说“项目 1”和“项目 2”。

在每个项目中,我都为功能区指定了唯一的名称,并在功能区上添加了选项卡。

但是,当我在 excel 中安装这两个加载项时,选项卡混合在一起,最后我得到一个功能区,其中混合了两个项目的控件。

我将如何为每个项目创建完全不同的功能区?

【问题讨论】:

    标签: .net excel vsto office-addins ribbonx


    【解决方案1】:

    控件的 idQ 属性的存在是为了使多个加载项能够共享容器,例如自定义选项卡和组。

    在下面的示例中,两个加载项在加载项选项卡上共享同一个“示例”组;每个添加一个按钮。关键是在 <customUI> 标记中指定相同的唯一命名空间。然后,控件可以使用idQ 引用此命名空间。

    首次定制:

    <customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" 
      xmlns:x="myNameSpace" >
      <ribbon>
        <tabs>
          <tab idMso="TabAddIns">
            <group idQ="x:Sample" label="Sample">
              <button id="C1" label="Sample Button 1" size="large" 
                imageMso="FileSave" onAction="c_action1" />
            </group>
          </tab>
        </tabs>
      </ribbon>
    </customUI>
    

    二次定制:

    <customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" 
      xmlns:x="myNameSpace" >
      <ribbon>
        <tabs>
          <tab idMso="TabAddIns">
            <group idQ="x:Sample" label="Sample">
              <button id="C2" label="Sample Button 2" size="large" 
                imageMso="FileSave" onAction="c_action2" />
            </group>
          </tab>
        </tabs>
      </ribbon>
    </customUI>
    

    因此,请确保在每个加载项中为 idQ 属性使用唯一值。

    【讨论】:

    • 我使用的是设计器,而不是 xml,有用的是将选项卡的 ControlId 属性设置为 ControlldType=Custom 和 CustomId=Project1 或 Project2。
    猜你喜欢
    • 2011-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-01
    • 1970-01-01
    • 2022-07-30
    • 2016-02-15
    • 1970-01-01
    相关资源
    最近更新 更多