Share via


Aufzählen und Hinzufügen von Kategorien

Dieses Beispiel zeigt, wie Sie Kategorien auflisten und eine Kategorie zur Hauptkategorieliste hinzufügen.

Beispiel

Hinweis

Das folgende Codebeispiel ist ein Auszug aus Programming Applications für Microsoft Office Outlook 2007.

Das Outlook-Objektmodell unterstützt zur besseren Organisation des Posteingangs von Benutzern Kategorien. Um eine höhere Organisationsebene beizubehalten, gehen Sie folgendermaßen vor:

  • Outlook-Elemente in Kategorien unterteilen und nach Kategorie anzeigen
  • Mehrere Farbkategorien auf ein einzelnes Outlook-Element anwenden
  • Outlook-Elemente nach Farbkategorie gruppieren und sortieren
  • Jeder Farbkategorie Tastenkombinationen zuordnen, damit Benutzer Elemente einfacher kategorisieren können
  • Farbkategorien entweder programmgesteuert oder über eine Benutzeraktion auf der Outlook-Benutzeroberfläche erstellen, löschen und ändern

Um die Funktionalität von Kategorien zur Verfügung zu stellen, bietet das Outlook-Objektmodell ein Category -Objekt, das eine einzelne benutzerdefinierte Farbkategorie in der Hauptkategorieliste darstellt. Die Hauptkategorieliste enthält Farbkategorien, die auf der Outlook-Benutzeroberfläche angezeigt werden. Die Liste wird von der Categories -Auflistung des NameSpace -Objekts dargestellt. Verwenden Sie zum Erstellen eines Category-Objekts die Add(String, Object, Object) -Methode der Categories-Auflistung. Beim Erstellen eines Category-Objekts wird eine GUID (global eindeutige ID) erstellt, die nicht geändert werden kann. Diese wird von der CategoryID-Eigenschaft dargestellt. Sie können jedoch den Namen, die Farbe und die Tastenkombination ändern, der/die einer Farbkategorie zugeordnet ist, indem Sie die Eigenschaften Name, Color und ShortcutKey des Category-Objekts festlegen. Sie können die Color-Eigenschaft ändern, indem Sie ihre OlCategoryColor-Konstante festlegen oder abrufen. Verwenden Sie zum Reproduzieren der Farben in einem benutzerdefinierten Steuerelement die folgenden schreibgeschützten Eigenschaften des Category-Objekts:

Diese Eigenschaften geben einen OLE_COLOR-Wert zurück, der von der Color-Eigenschaft des Category-Objekts abhängt.

Outlook-Elemente werden basierend auf dem Kategorienamen angezeigt. Jedes Elementobjekt verfügt über eine Categories-Eigenschaft, die eine durch Trennzeichen getrennte Zeichenfolge enthält, die Kategorienamen darstellt. (Für das MailItem-Objekt würden Sie z. B. die MailItem Categories-Eigenschaft verwenden. Dadurch können Sie dem Element eine Kategorie hinzufügen, auch wenn die Kategorie nicht in der Hauptkategorieliste vorhanden ist.

Hinweis

[!HINWEIS] Wenn die Categories-Eigenschaft eines Elements einen Kategorienamen enthält, der nicht in der Categories-Auflistung des NameSpace-Objekts vorhanden ist, wird der Kategoriename, der diesem Outlook-Element zugeordnet ist, ohne zugeordnete Farbe angezeigt. Die Categories-Eigenschaft eines Item-Objekts gibt keine Categories-Auflistung zurück.

Im folgenden Codebeispiel ruft die erste Prozedur EnumerateCategories die Hauptkategorieliste des aktuellen Benutzers ab, die von der Categories-Auflistung dargestellt wird. Sie zählt anschließend die Category-Objekte in diese Auflistung auf und schreibt die Eigenschaften Name und CategoryID in die Listeners für die Ablaufverfolgung der Listeners-Auflistung. Die zweite Prozedur AddACategory ruft die Hauptkategorieliste des aktuellen Benutzers ab und verwendet die CategoryExists-Methode zum Überprüfen, ob die Kategorie "ISV" in der Auflistung vorhanden ist. Wenn keine Kategorie mit dem Namen "ISV" vorhanden ist, fügt AddACategory der Hauptkategorieliste die Kategorie "ISV" hinzu und ordnet ihr die Farbe Dunkelblau mithilfe der Add-Methode der Categories-Auflistung zu. Sie weist auch STRG + F11 als die Tastenkombination für die Kategorie.

using Outlook = Microsoft.Office.Interop.Outlook;
private void EnumerateCategories()
{
    Outlook.Categories categories =
        Application.Session.Categories;
    foreach (Outlook.Category category in categories)
    {
        Debug.WriteLine(category.Name);
        Debug.WriteLine(category.CategoryID);
    }
}

private void AddACategory()
{
    Outlook.Categories categories =
        Application.Session.Categories;
    if (!CategoryExists("ISV"))
    {
        Outlook.Category category = categories.Add("ISV",
            Outlook.OlCategoryColor.olCategoryColorDarkBlue,
            Outlook.OlCategoryShortcutKey.olCategoryShortcutKeyCtrlF11);
    }
}

private bool CategoryExists(string categoryName)
{
    try
    {
        Outlook.Category category = 
            Application.Session.Categories[categoryName];
        if(category != null)
        {
            return true;
        }
        else
        {
            return false;
        }
    }
    catch { return false; }
}

Siehe auch