Search code examples
c#excelms-officeadd-inribbon

Office 2010 Add in custom tab/group contains unwanted commands


I've inherited an Excel 2010 VSTO which has a button under it's own tab to initiate some code (I'm also new to VS and C#).

My issue is when I deploy it I'm getting extra commands appearing under 'Menu commands' and a 'Toolbar Commands' groups; these belong to other apps that have Excel integration but not their own tab/groups.

I've searched for references to Menu and Toolbar within the solution but can't see them anywhere.

My Tab's across the ribbon are;

File | Home | Insert | Page Layout | Formulas | Data | Review | View | Developer | Boyce Tools 2 (my addin) | Other add in 1 | Other add in 2 | Other add in 3 | Other add in 4 |

I've specified names for the tab and group 'Boyce Tools 2', so just not sure how these other commands are getting there? Is it possible other addins are just defaulting to the first tab that isn't an office MS one?

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>(); }
    }
}

} '


Solution

  • Only an issue on the dev machine when running in Debug mode.

    In Release mode or in an actual installed version of the VSTO, it's not an issue