2016-05-17 4 views
-1

Ich verwende VS2013, um ein Outlook-Add-In für Outlook 2013 zu erstellen. Insbesondere möchte ich ein Element "Call" zum Kontextmenü hinzufügen, das beim Klicken mit der rechten Maustaste erscheint MailItem in Ihrem Posteingang.Hinzufügen eines Kontextmenüelements zum Posteingang Outlook.MailItems mit VSTO

Unten ist der Code, mit dem ich beginne, um das aktuell ausgewählte MailItem zu erhalten. Ich kann verifizieren, dass ich einen Griff zum richtigen bekomme, indem ich einige Debug-MessageBoxen rausschmeiße. Allerdings kann ich nicht die MailItem contextmenu scheinen zuzugreifen (zu denen ich eindeutig etwas wie cm.Items.Add(callMenuItem); tun wollen):

private void ThisAddIn_Startup(object sender, System.EventArgs e) 
{ 
    //Handle the event when the selected inbox MailItem changes: 
    Globals.ThisAddIn.Application.ActiveExplorer().SelectionChange += ThisAddIn_SelectionChange; 
} 

private void ThisAddIn_SelectionChange() 
{ 
    //Get a handle to the current inbox MailItem: 
    Outlook.MailItem mailItem = ((Outlook.MailItem)Globals.ThisAddIn.Application.ActiveExplorer().Selection[1]); 

    //Verify I've got the right one by showing a popup with the subject line: 
    System.Windows.Forms.MessageBox.Show(mailItem.Subject); 

    //Now I want to add an item to the context menu: 
    // ??? Cannot find anything anywhere that shows 
    //  shows how to add items to this contextmenu. 
} 

Wie auch immer bei allem, was ich Ahold diese bekommen kann ein guter Start wäre. Schließlich möchte ich diese Anrufschaltfläche auch dem Menüband "Outlook-Startseite" (neben "Antwort") und dem Nachrichten-Popup-Menüband ("neben" Antwort ") hinzufügen. Alle Details zum Hinzufügen dieses UI-Elements in einem dieser Elemente Orte ist das, was ich suche.

+0

@Sylverac Ja, ich habe das in Kombination mit Outlook und Kontextmenu und allen möglichen Kombinationen aus den letzten zwei Tagen versucht. Die gleichen 5 oder 6 Top-Artikel sind, was zurückgegeben wird und keiner von ihnen sind überhaupt nützlich. – kmarks2

+0

Der angegebene Link beantwortet Ihre Frage. Was hat nicht funktioniert? –

Antwort

0

Es gibt keine Notwendigkeit, das Selection Ereignis zu behandeln, wenn Sie Kontextmenüs in Outlook anpassen müssen. Stattdessen Sie die Fluent-Benutzeroberfläche verwenden müssen. weitere Informationen Customizing Context Menus in Office 2010 See.

Sie können mehr über die Fluent-Benutzeroberfläche (aka Ribbon UI) in der folgenden Serie von Artikeln lesen:

Ich habe die folgende Codezeile bemerkt:

//Handle the event when the selected inbox MailItem changes: 
Globals.ThisAddIn.Application.ActiveExplorer().SelectionChange += 

Sie müssen das Quellobjekt im globalen Bereich (Klassenstufe) zu erklären, das Ereignis zu halten gefeuert alle die Zeit. Oder das Quellobjekt (Explorer) wird vom Garbage Collector übernommen.

Verwandte Themen