Excel AddIn с настраиваемым контекстным меню, которое хорошо работало в 2010 году + Win7 не работает в 2013 году + Win10 - PullRequest
0 голосов
/ 30 октября 2019

Давным-давно я создал небольшой AddIn для Excel, чтобы загружать небольшие стволы данных на SQL-сервер. Довольно простая форма вызывается из контекстного меню правой кнопкой мыши. Это хорошо работало на Win7 + Excel 2010 (не знаю, важна ли ОС). Недавно я перешел на Win10 + Excel 2013. И контекстное меню больше не будет отображаться ... Ну, на самом деле я могу сделать это, но только один раз. My ThisAddIn_Startup

    private void ThisAddIn_Startup(object sender, EventArgs e)
    {
        logger.Info("Started");
        CreateContextMenu();
        Application.SheetBeforeRightClick += Application_SheetBeforeRightClick; 
    }

А вот CreateContextMenu

    private void CreateContextMenu()
    {
        try
        {
            Office.MsoControlType menuItem = Office.MsoControlType.msoControlButton;
            uploadToDatabase = (Office.CommandBarButton)Application.CommandBars["Cell"].
                Controls.Add(menuItem, missing, missing, 1, true);
            uploadToDatabase.Style = Office.MsoButtonStyle.msoButtonCaption;
            uploadToDatabase.Caption = "Upload to database";
            uploadToDatabase.Tag = "0";

            //MessageBox.Show("MF");
            logger.Info("Added context menu");
        }
        catch (Exception ex)
        {
            logger.Error(ex);
        }
    }

В файле журнала я вижу обе записи - «Запущено» и «Добавлено контекстное меню», но контекстное меню все еще не настроено. Но если я раскомментирую строку MessageBox.Show("MF");, она будет отображаться при первом запуске Excel, а затем снова исчезнет, ​​если я закрою книгу и открою любую другую.

У кого-нибудь есть идея, почему?

Ценю любые подсказки.

...