public void RemoveContextMenuItem(string applicationId) { CommandBar bar = _sheet.Application.CommandBars["Cell"]; List <CommandBarControl> toRemove = new List <CommandBarControl>(); foreach (CommandBarControl ctr in bar.Controls) { string tag = ctr.Tag; bool hasApplicationId = MenuItemTagData.HasApplicationId(tag, applicationId); if (hasApplicationId) { toRemove.Add(ctr); continue; } if (ctr.Caption.Contains("Budget") || ctr.Caption.Contains("ommand")) { toRemove.Add(ctr); continue; } } foreach (var commandBarControl in toRemove) { commandBarControl.Delete(); } }
private void ButtonOnClick(CommandBarButton ctrl, ref bool cancelDefault) { string commandId = MenuItemTagData.GetCommandId(ctrl.Tag); ExcelCommandSelectedAggEvent e = new ExcelCommandSelectedAggEvent { CommandId = commandId, Column = _col, Row = _row }; _aggregator.PublishEvent <ExcelCommandSelectedAggEvent>(e); }
public void SetContextMenu(int r, int c, MenuItem contextMenu, string applicationId) { CommandBar bar = _sheet.Application.CommandBars["Cell"]; CommandBarControl control = bar.Controls.Add(Type: MsoControlType.msoControlPopup); CommandBarPopup popup = control as CommandBarPopup; popup.Caption = contextMenu.Caption; popup.Tag = MenuItemTagData.GetStr(applicationId, string.Empty); foreach (MenuItem item in contextMenu.Children) { CommandBarControl iControl = popup.Controls.Add(Type: MsoControlType.msoControlButton); CommandBarButton iButton = iControl as CommandBarButton; iButton.Caption = item.Caption; iButton.Tag = MenuItemTagData.GetStr(applicationId, item.CommandId); iButton.Click += ButtonOnClick; } }