我有一個Outlook 2007/2010加載項,我已成功將上下文菜單按鈕添加到資源管理器。按鈕本身顯示正確並且工作正常,但是我無法將它放在上下文菜單上的內置控件上,它總是添加到底部。我使用VSTO 3.0爲Outlook 2003加載項創建了相同的按鈕,並且相同的代碼會創建一個位於「打開」按鈕上方的上下文菜單頂部的按鈕。如何定位Outlook 2007/2010 VSTO上下文菜單按鈕?
我的代碼如下
void Application_ItemContextMenuDisplay(CommandBar CommandBar, Selection Selection)
{
if (Selection.Count != 1) return;
CommandBarControl rootButton = CommandBar.Controls.Add(MsoControlType.msoControlButton, Type.Missing, "Create Heat Call", 1, Type.Missing);
CommandBarButton button = (CommandBarButton)rootButton;
button.BeginGroup = true;
button.Tag = "CreateHeatCall";
button.Caption = "Create Heat Call";
button.Style = MsoButtonStyle.msoButtonIconAndCaption;
button.Visible = true;
button.Picture = GetImage();
button.Mask = GetImageMask();
selection = Selection;
((CommandBarButton)rootButton).Click += new _CommandBarButtonEvents_ClickEventHandler(ThisAddIn_Click);
}
我試圖用「以前」的CommandBar.Controls.Add的參數()方法無濟於事玩耍。我懷疑問題是在將其他內置控件添加到上下文菜單之前正在觸發ItemContextMenuDisplay事件,而在Explorer.CommandBars觸發的方法中創建Outlook 2003外接程序按鈕。 OnUpdate事件不存在於VSTO 4.0 Explorer對象中。
是否可以在Outlook 07/10的VSTO 4.0中添加不在上下文菜單底部的按鈕?
嗨道格拉斯感謝您的回答我肯定會調查我的Outlook 2010加載項代碼的基於功能區的控件。我已經閱讀了很多關於Add-In Express的內容,它看起來像一個很棒的產品,但對於我相對簡單的(或者我認爲是!)加載項來說可能是過度殺傷性的。 –
@alexw:這可能是矯枉過正的,但單一開發者許可只需300-350美元左右(並且允許免費發佈商業產品),所以即使它爲您節省了幾天的工作也值得考慮。我更喜歡VSTO的另一個主要原因是,它允許您在Outlook 2003上使用.NET 4(VSTO不支持)。就個人而言,我只使用VSTO進行原型或個人項目。 – Douglas