Как добавить пункт меню в контекстное меню ячейки Excel 2010 - старый код не работает

Я пробовал 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");
}

Я ожидаю увидеть пункт меню под названием обновить при щелчке правой кнопкой мыши по ячейке. Тем не менее, при запуске вышеуказанного кода (в Excel 2010) нет пункта меню "обновить".

был бы очень признателен за любые советы о том, что Я могу отсутствовать или если эта функциональность изменилась с 2007 по 2010 год?

1 ответов


проверьте, существует ли этот тип кода (либо в вашем собственном аддине, либо в любом другом аддине, используемом вашей компанией), и если он либо комментирует его, либо перемещает его в событие _shutdown аддина.

//reset commandbars
Application.CommandBars["Cell"].Reset();