Давным-давно я создал небольшой 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, а затем снова исчезнет, если я закрою книгу и открою любую другую.
У кого-нибудь есть идея, почему?
Ценю любые подсказки.