Office 2010 添加自定义选项卡/组包含不需要的命令

问题描述 投票:0回答:2

我继承了 Excel 2010 VSTO,它在自己的选项卡下有一个按钮来启动一些代码(我也是 VS 和 C# 的新手)。

我的问题是,当我部署它时,我会在“菜单命令”和“工具栏命令”组下出现额外的命令;这些属于具有 Excel 集成的其他应用程序,但不属于自己的选项卡/组。

我在解决方案中搜索了对菜单和工具栏的引用,但在任何地方都找不到它们。

功能区上我的选项卡是;

文件|首页 |插入 |页面布局|公式|数据|评论 |查看 |开发商 | Boyce Tools 2(我的插件)|其他添加1 |其他添加2 |其他添加3 |其他添加4 |

我已经为选项卡和组“Boyce Tools 2”指定了名称,所以只是不确定这些其他命令是如何到达那里的?是否有可能其他插件只是默认第一个选项卡不是 Office MS 的选项卡?

Ribbon.Designer.cs

namespace ReportFramework
{
    partial class Ribbon : Microsoft.Office.Tools.Ribbon.RibbonBase
    {
        /// <summary>
    /// Required designer variable.
    /// </summary>
    private System.ComponentModel.IContainer components = null;

    public Ribbon()
        : base(Globals.Factory.GetRibbonFactory())
    {
        InitializeComponent();
    }

    /// <summary> 
    /// Clean up any resources being used.
    /// </summary>
    /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
    protected override void Dispose(bool disposing)
    {
        if (disposing && (components != null))
        {
            components.Dispose();
        }
        base.Dispose(disposing);
    }

    #region Component Designer generated code

    /// <summary>
    /// Required method for Designer support - do not modify
    /// the contents of this method with the code editor.
    /// </summary>
    private void InitializeComponent()
    {
        this.tabBoyceTools = this.Factory.CreateRibbonTab();
        this.grpBoyceCAL = this.Factory.CreateRibbonGroup();
        this.btnGenerateCAL = this.Factory.CreateRibbonButton();
        this.tabBoyceTools.SuspendLayout();
        this.grpBoyceCAL.SuspendLayout();
        // 
        // tabBoyceTools
        // 
        this.tabBoyceTools.ControlId.ControlIdType = Microsoft.Office.Tools.Ribbon.RibbonControlIdType.Office;
        this.tabBoyceTools.Groups.Add(this.grpBoyceCAL);
        this.tabBoyceTools.Label = "Boyce Tools 2";
        this.tabBoyceTools.Name = "tabBoyceTools";
        // 
        // grpBoyceCAL
        // 
        this.grpBoyceCAL.Items.Add(this.btnGenerateCAL);
        this.grpBoyceCAL.Label = "CAL";
        this.grpBoyceCAL.Name = "grpBoyceCAL";
        // 
        // btnGenerateCAL
        // 
        this.btnGenerateCAL.ControlSize = Microsoft.Office.Core.RibbonControlSize.RibbonControlSizeLarge;
        this.btnGenerateCAL.Label = "Format CAL";
        this.btnGenerateCAL.Name = "btnGenerateCAL";
        this.btnGenerateCAL.OfficeImageId = "MacroPlay";
        this.btnGenerateCAL.ShowImage = true;
        this.btnGenerateCAL.Click += new Microsoft.Office.Tools.Ribbon.RibbonControlEventHandler(this.btnGenerateCAL_Click);
        // 
        // Ribbon
        // 
        this.Name = "Ribbon";
        this.RibbonType = "Microsoft.Excel.Workbook";
        this.Tabs.Add(this.tabBoyceTools);
        this.Load += new Microsoft.Office.Tools.Ribbon.RibbonUIEventHandler(this.Ribbon_Load);
        this.tabBoyceTools.ResumeLayout(false);
        this.tabBoyceTools.PerformLayout();
        this.grpBoyceCAL.ResumeLayout(false);
        this.grpBoyceCAL.PerformLayout();

    }

    #endregion

    internal Microsoft.Office.Tools.Ribbon.RibbonTab tabBoyceTools;
    internal Microsoft.Office.Tools.Ribbon.RibbonGroup grpBoyceCAL;
    internal Microsoft.Office.Tools.Ribbon.RibbonButton btnGenerateCAL;
}

partial class ThisRibbonCollection
{
    internal Ribbon Ribbon
    {
        get { return this.GetRibbon<Ribbon>(); }
    }
}

} '

c# excel ms-office add-in ribbon
2个回答
1
投票

仅在调试模式下运行时开发机器上出现问题。

在发布模式或实际安装的 VSTO 版本中,这不是问题


0
投票

您必须在选项卡属性中将 ControlIdType 属性从“Office”更改为“自定义”。这将在 VS 2022 中以“调试”或“发布”模式运行时删除“菜单命令”。

Microsoft.Office.Tools.Ribbon.RibbonTab Properties

© www.soinside.com 2019 - 2024. All rights reserved.