我需要添加一個按鈕到收件箱的上下文菜單。我有這個工作正常。我需要弄清楚的是在事件處理程序的實現中,我如何確定哪個項目/項目被點擊?VSTO Outlook 2007加載項上下文菜單CommandBarButton單擊事件
private void AddIn_Startup(object sender, EventArgs e)
{
Application.ItemContextMenuDisplay += Application_ItemContextMenuDisplay;
}
private void Application_ItemContextMenuDisplay(CommandBar commandBar, Selection selection)
{
commandBar.Controls[1].BeginGroup = true; // add seperator before first menu
var cmdButtonCopy = (CommandBarButton)commandBar.Controls.Add(MsoControlType.msoControlButton, 1, Missing.Value, 1, Missing.Value);
cmdButtonCopy.Caption = "&Copy Message";
cmdButtonCopy.Click += cmdButtonCopy_Click;
}
private void cmdButtonCopy_Click(CommandBarButton ctrl, ref bool canceldefault)
{
// no sender/event args to determine which item was clicked ...
}
在cmdButtonCopy_Click事件處理程序,我需要複製是右鍵單擊的具體項目,但我無法弄清楚如何告訴單擊了哪個項目。
這不是「最佳」可能的方式我希望爲,但它的作品。我將Tag屬性設置爲郵件項的EntryId,然後在Click處理程序中,我將該項從Application.Session中取回。謝謝。 – Adam 2010-09-27 19:49:52
@亞當我試圖做同樣的事情。你能否詳細說明你是如何做到這一點的?您如何/在哪裏獲得所選郵件項目的EntryId?您是如何在點擊處理程序中訪問郵件的?多謝提前一百萬。 – kmarks2 2012-03-16 19:26:20