Я попробовал 3 разных примера кода, и все они не увенчались успехом.
Вот код сотрудника MSFT ( Как показать контекстное меню в диапазоне), два других примера имеют почти такой же код:
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
CommandBar cellbar = this.Application.CommandBars["Cell"];
CommandBarButton button = (CommandBarButton) cellbar.FindControl(MsoControlType.msoControlButton, 0, "MYRIGHTCLICKMENU", Missing.Value, Missing.Value);
if (button == null)
{
// add the button
button = (CommandBarButton) cellbar.Controls.Add(MsoControlType.msoControlButton, Missing.Value, Missing.Value, cellbar.Controls.Count, true);
button.Caption = "Refresh";
button.BeginGroup = true;
button.Tag = "MYRIGHTCLICKMENU";
button.Click += new _CommandBarButtonEvents_ClickEventHandler(MyButton_Click);
}
}
private void MyButton_Click(CommandBarButton cmdBarbutton, ref bool cancel)
{
System.Windows.Forms.MessageBox.Show("MyButton was Clicked", "MyCOMAddin");
}
Я ожидаю увидеть пункт меню под названием Refresh при щелчке правой кнопкой мыши по ячейке. Тем не менее, при выполнении приведенного выше кода (в Excel 2010) нет пункта меню «Обновить».
Чего мне может не хватать, или эта функциональность изменилась с 2007 по 2010 год?