Мы настраиваем пользовательское контекстное меню, когда вы щелкаете правой кнопкой мыши по электронной почте в Outlook, например:
private void _application_ItemContextMenuDisplay(Office.CommandBar CommandBar, Interop.Selection Selection)
{
var contextButton = (Office.CommandBarButton)CommandBar.Controls.Add(Office.MsoControlType.msoControlButton, Temporary: true);
contextButton.Visible = true;
contextButton.Caption = "&My Context Menu";
contextButton.Click += MyContextMenu_Click;
}
Этот метод подписан на Application.ItemContextMenuDisplay
.
Он работает нормально, за исключением того, чтоиногда наше мероприятие запускается несколько раз.Это происходит, когда вы быстро щелкаете правой кнопкой мыши по разным электронным письмам.
Тогда возникает вопрос: а когда это хорошее место для очистки моего временного пункта контекстного меню?Мне нужно отписаться о событии C # где-то.Где предназначено место для этого?(Я бы также подумал, что нам может понадобиться позвонить Marshal.ReleaseComObject
)
Мы используем VSTO и шаблон проекта Outlook 2010 в Visual Studio.В общем, я не нашел много хороших примеров настройки контекстного меню.