MSDN Magazin > Home > Ausgaben > 2007 > June >  OFFICE-Benutzeroberfläche: Neue VSTO-Featu...
OFFICE-Benutzeroberfläche
Neue VSTO-Features zum Anpassen von Word und Outlook
Steve Fox and Paul Stubbs

Dieser Artikel basiert auf einer Vorabversion von Microsoft Visual Studio-Tools für Microsoft Office. Änderungen der Informationen in diesem Artikel sind vorbehalten.
Themen in diesem Artikel:
  • Neue Features in VSTO „Orcas“ Beta 1
  • Verwenden des Ribbon Designer für Office-Dokumente
  • Anpassen der Multifunktionsleiste mit XML
  • Datenbindung mit Word-Inhaltssteuerelementen
  • Verwenden von VSTO zum Erstellen benutzerdefinierter Outlook-Formularbereiche
In diesem Artikel werden folgende Technologien verwendet:
VSTO, Office, Visual Studio
2007 Microsoft® Office System wurde in eine stabile Geschäftsanwendungsplattform weiterentwickelt, die zum Erstellen und Bereitstellen einer großen Anzahl von Office-Geschäftsanwendungen eingesetzt werden kann. Bei Office-Geschäftsanwendungen handelt es sich um eine neue Klasse von Anwendungen, mit der alltägliche und wichtige Geschäftsprobleme behandelt werden können. Dies erfolgt durch nahtlose Integration bereits vorhandener Office-Software und -Dienste (Microsoft Office Word, Excel® und SharePoint®-Server) in Geschäftsbereichssysteme, z. B. SAP. Durch Kombination der Vorteile und der Erweiterbarkeit des Office-Systems mit der noch in diesem Jahr bevorstehenden Veröffentlichung von Visual Studio® (Codename „Orcas“) entsteht eine herausragende technologische Verbindung. In diesem Artikel liegt der Schwerpunkt darauf, wie Profi-Entwickler Microsoft Visual Studio-Tools für Microsoft Office (VSTO) verwenden können, um leistungsstarke benutzerdefinierte Anwendungen für 2007 Microsoft Office System zu erstellen.

Übersicht über VSTO
VSTO ist ein leistungsfähiger Satz von Tools und Features, mit dem Entwickler Microsoft Office-Anwendungen mithilfe von Visual Basic® und C# erweitern und anpassen können. Durch die „Orcas“-Veröffentlichung von VSTO werden Entwickler künftig noch mehr in ihrer Arbeit gestärkt. In diesem Programm wird die verwaltete Codeentwicklung auf einzigartige Weise in Microsoft Office und Microsoft Office SharePoint integriert. Es stellt außerdem einen visuellen Designer für die Multifunktionsleiste bereit, mit dem die Office-Multifunktionsleiste und das Programm durch Verwenden eines einfachen Windows® Forms-ähnlichen Programmiermodells angepasst werden können.
Ferner bietet VSTO die Möglichkeit, Microsoft Office Outlook®-Formulare mit einem visuellen Designer so zu erweitern, dass sowohl die Verwendung von Windows Forms-Steuerelementen und Windows Presentation Foundation-Steuerelementen als auch die Möglichkeit unterstützt wird, Formulare zu importieren, die mithilfe von in Outlook integrierten Steuerelementen erstellt wurden. Außerdem ermöglicht der SharePoint-Workflow in C# oder Visual Basic jetzt eine schnelle Anwendungsentwicklung in Visual Studio. VSTO umfasst visuelle Workflowdesigner und neue Unterstützung für das schnelle Bereitstellen und Debuggen eines benutzerdefinierten Workflows auf einem SharePoint-Server, durch den der arbeitsintensive Prozess von 15 Schritten und mehreren Tagen auf ein paar Klicks in einem Assistenten reduziert werden kann.
VSTO enthält darüber hinaus visuelle Designer für Word 2007 und Excel 2007, die innerhalb der Visual Studio-IDE zu finden sind. Auf diese Weise verhält sich das Dokument wie eine visuelle Entwurfsoberfläche, was das Erstellen leistungsfähiger dokumentbasierter Lösungen erleichtert. VSTO bietet außerdem die Möglichkeit, Word 2007-Dokumente mithilfe der neuen Word-Inhaltssteuerelemente zu erstellen, mit voller Unterstützung für die Datenbindung im ADO.NET-Stil, Drag & Drop vom Datenquellenfenster und Eigenschaftsrasterunterstützung.
In diesem Artikel wird eine Auswahl der oben genannten Features behandelt. Insbesondere wird veranschaulicht, wie sich die Office-Multifunktionsleiste anpassen lässt, Microsoft Office Word 2007 Word-Inhaltssteuerelemente hinzugefügt, eine benutzerdefinierte Multifunktionsleiste in die Inhaltssteuerelemente integriert und Outlook-Formularbereiche erstellt werden. Selbstverständlich sind dies nur einige der Features in Visual Studio „Orcas“, doch sie dürften als Teil der Beta 1-Veröffentlichung bereits verfügbar sein, wenn dieser Artikel erscheint.

Anpassen der Office-Benutzeroberfläche mit dem Ribbon Designer
In VSTO „Orcas“ gibt es zwei Möglichkeiten, die Office-Multifunktionsleiste anzupassen. Die erste Möglichkeit ähnelt der Anpassung in Microsoft Visual Studio 2005 Tools für Office Second Edition (VSTO 2005 SE), also die Verwendung einer XML-Klasse und -Definition zur Definition der Elemente der Multifunktionsleiste sowie der anschließenden Verknüpfung der Multifunktionsleistenelemente mit Ereignishandlern (durch einen Rückrufcode). Da Sie diese Methode vermutlich bereits kennen, soll hier die zweite Methode näher untersucht werden, bei der die Office-Multifunktionsleiste in VSTO „Orcas“ angepasst wird: der Ribbon Designer. (Wenn Sie sich für das Anpassen der Multifunktionsleiste mit VSTO 2005 SE interessieren, finden Sie weitere Informationen unter der Rubrik „Advanced Basics“ von Ken Getz in dieser Ausgabe des MSDN®-Magazins.)
Der Ribbon Designer umfasst einen visuellen Designer und ein Erweiterbarkeitsobjektmodell und macht das Erstellen, Konfigurieren und Debuggen der Multifunktionsleisten-Benutzeroberfläche für Entwickler äußerst einfach. Wie bei anderen visuellen Designern können Sie Steuerelemente durch Drag & Drop auf die Entwurfsoberfläche verschieben, Eigenschaften über das Eigenschaftenfenster festlegen und Ereignishandler für neue Multifunktionsleistenelemente erstellen, indem Sie einfach auf das Steuerelement doppelklicken. Darüber hinaus sind Office-Rückrufe den Ereignissen der VSTO-Multifunktionsleistenobjekte zugeordnet, sodass Entwickler Ereignishandler statt Rückrufmethoden programmieren. Im Folgenden soll zur Veranschaulichung eine Multifunktionsleiste für Word 2007 angepasst werden.
Als Erstes wird hierzu ein neues Word 2007-Projekt entweder im C#- oder Visual Basic-Office-Knoten erstellt, das den Namen „WordRibbonExample“ erhält. Nach dem Erstellen des Projekts erstellt Visual Studio automatisch eine Reihe von Projektressourcendateien. Klicken Sie mit der rechten Maustaste auf die Stammprojektdatei (WordExample.cs), und wählen Sie „Add New Item“ (Neues Element hinzufügen) | „Ribbon (Visual Designer)“ (Multifunktionsleiste (Visueller Designer)) aus. Sie können entweder einen Namen für die Multifunktionsleiste angeben oder den Standardnamen übernehmen. Dadurch wird eine standardmäßige benutzerdefinierte Multifunktionsleiste erstellt, der Multifunktionsleistenelemente hinzugefügt werden können.
Der Ribbon Designer erleichtert die Drag & Drop-Funktionalität, sodass Sie Office-Multifunktionsleisten-Steuerelemente von der entsprechenden Registerkarte der Toolbox ziehen und ablegen können. Registerkarten, Gruppen und Schaltflächen sind die Multifunktionsleisten-Steuerelemente, die in der Beta 1-Veröffentlichung von VSTO „Orcas“ unterstützt werden. Unterstützte Office-Anwendungen sind Word 2007, Excel 2007, Powerpoint® 2007 und Outlook 2007.
Im folgenden Beispiel haben wir der Multifunktionsleisten-Registerkarte drei Gruppen hinzugefügt (Gruppen sind als Container für die Multifunktionsleisten-Steuerelemente erforderlich), mit dem Titel „Eigene Registerkarte“. Innerhalb der einzelnen Gruppen wurden Schaltflächen und Bilder hinzugefügt. In Abbildung 1 wird dargestellt, wie die Eigenschaften eines Steuerelements bearbeitet werden.
Abbildung 1 Ribbon Designer (Klicken Sie zum Vergrößern auf das Bild)
Eine typische Anpassung der VSTO-Multifunktionsleiste besteht aus mindestens einem Multifunktionsleistenobjekt. Diese Objekte enthalten jeweils ein oder mehrere Registerkartenobjekte, die wiederum ein oder mehrere Gruppenobjekte enthalten und so weiter. Folglich wird eine VSTO-Anpassung innerhalb einer bestimmten hierarchischen Struktur von Multifunktionsleistenobjekten erstellt. Zum Beispiel illustriert das konzeptionelle Diagramm in Abbildung 2, dass auf der höchsten Ebene eine Registerkarte als Steuerelement eingerichtet werden muss. Anschließend können Sie der Registerkarte ein oder mehrere Steuerelemente, eine oder mehrere Schaltflächen, eine oder mehrere Umschaltflächen sowie Menüs zur Gruppe hinzufügen. Innerhalb eines beliebigen Menüs können Sie jedoch nur fünf Ebenen tief gehen.
Abbildung 2 Hierarchie der Steuerelemente 
Nachdem Sie jetzt eine benutzerdefinierte Multifunktionsleiste erstellt haben, können Sie den Multifunktionsleistenelementen Ereignishandler hinzufügen. Dazu gehen Sie in derselben Weise wie bei anderen Steuerelementen vor: Doppelklicken Sie auf das Steuerelement. Visual Studio fügt automatisch ein Klickereignis hinzu, und die Quellcodeansicht wird geöffnet, sodass Sie den Ereignishandlercode eingeben können. Wenn zum Beispiel eine Schaltfläche namens „testButtonOne“ vorliegt, können Sie im Designer auf die Schaltfläche doppelklicken, und die Codeansicht öffnet das testButtonOne_click-Ereignis, damit Sie einen Ereignishandlercode eingeben können, z. B.:
private void testButtonOne_click(
    object sender, RibbonControlEventArgs e)
{
    // Simple message box to illustrate click event.
    testButtonOne.label = “New Label”;
    MessageBox.Show(testButtonOne.label);
}

Anpassen erweiterter Multifunktionsleisten mithilfe von XML
In VSTO 2005 SE wurde die Office-Multifunktionsleiste durch eine XML-Datei angepasst, indem beim Hinzufügen eines neuen Elements zum Projekt die Multifunktionsleistenunterstützung ausgewählt wurde. Dadurch wurde automatisch eine Multifunktionsleistenklasse erstellt, mit der die benutzerdefinierte Benutzeroberfläche geladen wird, sowie eine Multifunktionsleisten-XML-Datei, durch die die benutzerdefinierte Benutzeroberfläche definiert wird. Abbildung 3 stellt den Standard-XML-Code im Element „Ribbon Support“ dar.
<customUI xmlns=”http://schemas.microsoft.com/office/2006/01/customui” onLoad=”OnLoad”>
  <ribbon>
    <tabs>
      <tab idMso=”TabAddIns”>
        <group id=”MyGroup”
               label=”My Group”>
          <toggleButton id=”toggleButton1” 
                        size=”large”
                        label=”My Button”
                        screentip=”My Button Screentip”
                        onAction=”OnToggleButton1” 
                        imageMso=”HappyFace” />
        </group>
      </tab>
    </tabs>
  </ribbon>
</customUI>
Ihrem Projekt werden außerdem Standardelemente hinzugefügt, die beim Anpassen der Benutzeroberfläche hilfreich sind, z. B. eine Umschaltfläche, die ein Meldungsfeld aufruft, wenn der Benutzer darauf klickt, ein Rückrufcode, der Ihnen vermittelt, wie Sie Ereignishandler für die benutzerdefinierte Benutzeroberfläche erstellen, und ein Hilfsprogrammcode.
Obwohl der neue Ribbon Designer allgemeine Anpassungsaufgaben der Multifunktionsleiste ermöglicht, stellt er keine Unterstützung für komplexere Szenarios bereit (z. B. das Zuweisen eines neuen Zwecks für integrierte Befehle oder das Arbeiten mit einigen der weniger gebräuchlichen Steuerelemente). Sollten Sie die Office-Standardbenutzeroberfläche anpassen oder Steuerelemente verwenden wollen, die im Designer nicht enthalten sind, können Sie die Anpassung stattdessen mit der Multifunktionsleisten-XML durchführen. Sie können entweder mit dem Multifunktionsleistenelement (XML) beginnen oder den Designer als Ausgangspunkt verwenden, um dann zur Multifunktionsleisten-XML zu exportieren und mit dem Definieren der benutzerdefinierten Benutzeroberfläche mithilfe von XML fortzufahren. Beachten Sie dabei jedoch, dass es sich um einen einmaligen Export handelt. Anschließend müssen die Rückrufsignaturen manuell definiert und ein beliebiger Ereignishandlercode eingegeben werden, der anhand des Designers erstellt wurde.

Steuerelemente für den VSTO-Word-Inhalt
Während das Anpassen der Multifunktionsleiste Ihnen das Erstellen und Wrappen benutzerdefinierter Benutzeroberflächen auf Anwendungsebene ermöglicht, können Sie mit den VSTO-Word-Inhaltssteuerelementen ein Dokument oder eine Vorlage durch einfaches Anpassen strukturierter und raffinierter gestalten. Durch Verwenden der Drag & Drop-Funktionalität können Sie einer Word 2007-Vorlage Steuerelemente hinzufügen, diese Steuerelemente mit einer Geschäftslogik versehen, die Steuerelemente gegen benutzerseitiges Bearbeiten und Löschen absichern und eine einfache Datenbindung zu lokalen oder Unternehmensdatenbanken hinzufügen. Da VSTO einen Zugriff auf leistungsfähige Anpassungsfeatures (z. B. die Aufgabenbereichsanpassung) ermöglicht, ist es einfach, sich ein Szenario vorzustellen, in dem die Oberfläche des Dokuments zu einer Benutzeroberfläche für die Unternehmensdaten und der Aufgabenbereich (oder eine benutzerdefinierte Multifunktionsleiste) zur Methode wird, mit der ein Benutzer die Inhaltssteuerelemente innerhalb des Word 2007-Dokuments auffüllen kann.
Im Folgenden soll unter Verwendung der Inhaltssteuerelemente eine einfache Word-Vorlage erstellt werden, die automatisch mit Daten von einer Kundendatenbank angelegt werden kann. Dieser Vorlage wird dann eine benutzerdefinierte Multifunktionsleiste hinzugefügt, die dem Endbenutzer das Durchsuchen der Daten innerhalb der Datenbank ermöglicht. Das Ergebnis ist das in Abbildung 4 dargestellte Dokument.
Abbildung 4 Beispieldokument: Einladung 
Zunächst müssen Sie eine Lösung erstellen, damit Ihre Endbenutzer die Word-Vorlage anpassen können, indem sie den Inhalt der vordefinierten Bereiche auf Grundlage der Daten in der Kundendatenbank auswählen. Sie erstellen ein neues Projekt in Visual Studio und wählen, entweder in Visual Basic oder C#, zuerst Office und dann die Dokumentvorlage von Word 2007 aus. Dadurch wird ein leeres Word-Dokument innerhalb der Visual Studio-IDE geöffnet, zusammen mit den Inhaltssteuerelementen in der Toolbox, die in Abbildung 5 dargestellt ist.
Abbildung 5 Word-Steuerelemente 
Mit der Shell des Projekts können Sie jetzt der Oberfläche des Dokuments Steuerelemente hinzufügen. Mit dem Hinzufügen der Steuerelemente allein ist es jedoch nicht getan – das Dokument muss auch eine Struktur erhalten. Verwenden Sie zum Erstellen dieser Dokumentvorlage entweder die Vorlage innerhalb der Visual Studio-Umgebung, oder laden Sie eine vordefinierte Vorlage. Für dieses Beispiel wurde zuerst Standardtext hinzugefügt, der als Vorlage für die Einladung dient, und anschließend fünf Inhaltssteuerelemente (durch Drag & Drop der Steuerelemente von der Toolbox zur Oberfläche des Dokuments). Bei den hinzugefügten Steuerelementen handelt es sich um ein RichTextContentControl für den Unternehmensnamen, die Unternehmensadresse und den Empfänger sowie ein DatePickerContentControl für das Datum und das Antwortdatum. Wenn der Dokumentoberfläche alle Steuerelemente hinzugefügt wurden, können Sie die Eigenschaften der Steuerelemente (so wie bei anderen Steuerelementen innerhalb von Visual Studio) über das Eigenschaftenfenster einstellen. In Abbildung 4 sehen Sie genau, wo die Steuerelemente hinzugefügt wurden, die dem Benutzer ein Durchsuchen der Kundendatenbank ermöglichen, sofern die Steuerelemente mit den Ereignishandlern für das Durchsuchen der Daten verknüpft sind.
Wenn Sie alle bisherigen Schritte richtig ausgeführt haben, drücken Sie F5, um die Lösung zu erstellen und auszuführen. Da die Steuerelemente mit keiner bereits vorhandenen Datenbank verknüpft wurden, stehen keine Daten zur Verfügung, um die Felder aufzufüllen. Schließen Sie also das Word-Dokument, ohne es zu speichern, und kehren Sie zur Visual Studio-Umgebung zurück.
Mit den jetzt im Dokument platzierten Steuerelementen können Sie auf eine bestimmte Datenquelle verweisen und die Steuerelemente an sie binden. Für dieses Beispiel haben wir eine sehr einfache Microsoft Office Access™-Kundendatenbank mit dem Titel „CustomerDatabase“ erstellt. Die Datenbank umfasst eine Tabelle mit sechs Spalten: ID, CompanyName, CompanyAddress, ContactName, CurrentDate und ResponseDate. Das Erstellen des Verweises ist nicht kompliziert: Sie verwenden einfach den Assistenten zum Konfigurieren von Datenquellen, um die Steuerelemente innerhalb der Kundendatenbank an bestimmte Datensätze zu binden.
Klicken Sie als Erstes auf das Menü „Daten“, und wählen Sie „Neue Datenquelle hinzufügen“ aus. Im Assistenten zum Konfigurieren von Datenquellen werden Sie daraufhin aufgefordert, eine Auswahl zu treffen. Wählen Sie „Datenbank“ aus, und klicken Sie auf „Weiter". Klicken Sie im nächsten Dialog auf „Neue Verbindung“. Akzeptieren Sie im Dialogfeld „Verbindung hinzufügen“ die Standarddatenquelle (d. h. Access), und navigieren Sie dann zu Ihrer Access-Datenbank. Der Assistent fordert Sie daraufhin auf, die Tabellen und Ansichten auszuwählen, die Sie dem Projekt zuordnen wollen. Wenn Sie die gleiche Datenbank erstellt haben wie wir, wählen Sie die CustomerInfo-Tabelle aus, und lassen die Option „Ansichten“ deaktiviert. In Abbildung 6 ist dieses Dialogfeld dargestellt.
Abbildung 6 Auswahl des Datenbankobjektdialogfelds (Klicken Sie zum Vergrößern auf das Bild)
Klicken Sie anschließend auf „Fertig stellen“. Visual Studio erstellt aufgrund der von Ihnen bereitgestellten Informationen automatisch einen Datensatz, einen Tabellenadapter und eine Bindungsquelle, d. h. die Elemente, die Sie zum Anbinden der Steuerelemente an die Daten sowie zum programmatischen Bearbeiten der Datensätze in der Datenbank benötigen. In diesem Beispiel hat Visual Studio automatisch die folgenden Namen zugewiesen: customerDatabaseDataSet, customerInfoTableAdapter und customerInfoBindingSource.
Abbildung 8 Schaltflächen für das Durchsuchen von Daten 
Beim letzten Schritt geht es darum, den einzelnen Schaltflächen Ereignishandler hinzuzufügen, damit der Endbenutzer die Daten in der Kundendatenbank durchsuchen kann. Doppelklicken Sie dazu auf die einzelnen Schaltflächen, und fügen Sie Code hinzu, der dem Benutzer ermöglicht, die Daten vorwärts und rückwärts zu durchsuchen. Wenn Sie auf eine Schaltfläche doppelklicken, wird die Codeansicht für die Multifunktionsleistenklasse geöffnet, sodass Sie den Ereignishandlercode hinzufügen können. Der Code unten verwendet das Objekt „Global“, um auf das Dokument, die Bindungsquelle für die Kundendatenbank und schließlich auf die MoveNext- und MovePrevious-Methoden zuzugreifen.
private void button1_OnAction(
  object sender, ControlEventArgs e)
{
  Globals.ThisDocument.customerInfoBindingSource.MoveNext();
}

private void button2_OnAction(
  object sender, ControlEventArgs e)
{
  Globals.ThisDocument.customerInfoBindingSource.MovePrevious();
}
Abbildung 10 Outlook 2007-Formularbereich (Klicken Sie zum Vergrößern auf das Bild)
Um einen Outlook 2007-Formularbereich zu erstellen, können Sie wie zuvor entweder mit einem Visual Basic- oder einem C#-Projekt beginnen. Das Hinzufügen eines Formularbereichs ist ebenso einfach wie das Hinzufügen eines neuen Outlook-Formularbereichelements. Klicken Sie mit der rechten Maustaste auf das Projekt, und wählen Sie im Kontextmenü „Neues Element hinzufügen“ aus. Wählen Sie im Dialogfeld „Neues Element hinzufügen“ die Option „Outlook-Formularbereich“ aus, und legen Sie den Namen als „NotesFormRegion.cs“ fest. Klicken Sie auf „Hinzufügen“, um den Outlook-Formularbereichs-Assistenten zu starten, der Sie durch den Vorgang zum Hinzufügen des Formularbereichs führt. Zunächst müssen Sie den Typ des zu erstellenden Formularbereichs auswählen. Es stehen vier Typen zur Auswahl: Separate (Getrennt), Adjoining (Benachbart), Replacement (Ersetzen) und Replace All (Alles ersetzen).
Wählen Sie die Option „Adjoining“ (Benachbart) aus, damit der Formularbereich unten im Inspektor angezeigt wird. Klicken Sie auf „Weiter“, um fortzufahren. Geben Sie als Namen „VSTO-Notizen“ an. Beachten Sie, dass der Titel und die Beschreibung für die benachbarten Formularbereichstypen nicht verfügbar sind. Die Anzeige des Formularbereichs kann außerdem im Erstellungs- und Lesemodus oder im Lesebereich konfiguriert werden. Lassen Sie alle Standardeinstellungen unverändert, und klicken Sie auf „Weiter“, um fortzufahren.
Wählen Sie aus, mit welchen Outlook-Inspektoren Ihr Formularbereich verknüpft ist. In diesem Beispiel wird die E-Mail-Nachricht verwendet, um den Formularbereich nur dann anzuzeigen, wenn ein E-Mail-Element angezeigt wird. Sie haben jetzt alle Informationen bereitgestellt, die der Assistent für das Erstellen des Formularbereichs benötigt.
Wenn Sie auf „Fertig stellen“ klicken, wird Ihrem Projekt ein neues NotesFormRegion.cs-Element hinzugefügt, und der Formularbereichsdesigner wird geöffnet. Sie können den Formularbereich jetzt genauso wie ein Windows-Formular entwerfen, und zwar durch Verschieben von Steuerelementen per Drag & Drop von der Toolbox auf die Entwurfsoberfläche. Bei diesem Beispiel müssen Sie nur ein einzelnes RTF-Feld hinzufügen, das zur Anzeige der E-Mail-Notizen verwendet wird. Ziehen Sie ein RichTextBox-Steuerelement von der Toolbox auf die Entwurfsoberfläche des Formularbereichs. Legen Sie es so fest, dass es im übergeordneten Container andockt, damit es den ganzen Formularbereich ausfüllt. Legen Sie die Hintergrundfarbe auf Gelb fest, damit es wie eine Notiz aussieht. Jetzt haben Sie einen rundum funktionsfähigen Outlook-Formularbereich. Sie können F5 drücken, um Outlook zu erstellen und zu starten. Öffnen Sie eine E-Mail-Nachricht, um das gelbe Textfeld am Ende der Nachricht zu sehen.
Als Nächstes erstellen Sie einen Code, um den Formularbereich für das Erstellen von Notizen funktional zu gestalten. Klicken Sie mit der rechten Maustaste auf den Formularbereichsdesigner, und wählen Sie „Code anzeigen“ aus. In der Codeansicht sehen Sie, dass sich der Formularbereich von der Microsoft.Office.Tools.Outlook.FormRegionControl-Klasse ableitet. Die FormRegionControl-Basisklasse enthält alle Grundlagen, um Ihr Steuerelement in einen Outlook-Formularbereich einzubetten. Sie werden außerdem bemerken, dass es drei Ereignishandler gibt. Das FormRegionInitializing-Ereignis wird anfangs aufgerufen, wenn der Formularbereich erstellt wird. Das Ereignis ermöglicht Ihnen, das Erstellen des Formularbereichs abzubrechen. Dabei erhalten Sie einen Verweis auf das Outlook-Element, mit dem der Formularbereich verknüpft ist. Die anderen beiden Ereignisse, „FormRegionShowing“ und „FormRegionClosed“, werden aufgerufen, wenn der Formularbereich angezeigt und geschlossen wird. In diesen Ereignissen fügen Sie Ihren Code hinzu. Wenn der Formularbereich geschlossen ist, müssen Sie den Text im RTF-Feld als eine ausgeblendete Anlage in der Nachricht speichern. Um den Text anzufügen, müssen Sie ihn zunächst als temporäre Datei speichern. Beim Anzeigen des Formularbereichs soll der Text in der ausgeblendeten Anlage gelesen und im RTF-Feld angezeigt werden. Die Anlage muss wiederum in eine temporäre Datei geschrieben werden. Eine Möglichkeit für diesen Vorgang wird in Abbildung 11 dargestellt.
Outlook.MailItem mailItem;
string NotesPath = “C:\\VSTO Note.txt”;
string NoteDisplayName = “VSTO Note”; 

private void NotesFormRegion_FormRegionShowing(
    object sender, System.EventArgs e)
{
    mailItem = (Outlook.MailItem)this.OutlookItem;
    foreach (Outlook.Attachment attachment in mailItem.Attachments)
    {
        if (attachment.DisplayName == NoteDisplayName)
        {
            attachment.SaveAsFile(NotesPath);
            richTextBox1.Text = System.IO.File.ReadAllText(NotesPath);
        }
    }
}

private void NotesFormRegion_FormRegionClosed(object sender, 
    System.EventArgs e)
{
    if (richTextBox1.Modified)
    {
        System.IO.File.WriteAllText(NotesPath, richTextBox1.Text);
        foreach (Outlook.Attachment attachment in mailItem.Attachments)
        {
            if (attachment.DisplayName == NoteDisplayName)
            {
                attachment.Delete();
            }
        }
        if (richTextBox1.TextLength > 0)
        {
            long position = 0;
            mailItem.Attachments.Add(NotesPath, 
                Outlook.OlAttachmentType.olEmbeddeditem, position, 
                NoteDisplayName);
        }
        mailItem.Save();
    }
}
Wenn Sie alle oben genannten Schritte abgeschlossen haben, drücken Sie F5, und führen Sie das Projekt aus. Dadurch wird das Projekt erstellt und Outlook 2007 aufgerufen. Wenn Outlook startet, öffnen Sie eine Nachricht in Ihrem Posteingang, und geben Sie probeweise einen beliebigen Text ein.

Zusammenfassung
In diesem Artikel wurde veranschaulicht, wie Sie die Office-Multifunktionsleiste anpassen, einem Word-Dokument Inhaltssteuerelemente hinzufügen, eine benutzerdefinierte Multifunktionsleiste in ein Word-Dokument integrieren und einen Outlook-Formularbereich erstellen. Dies sind nur einige der Office-Entwicklungsfeatures, die Ihnen von VSTO in der Beta 1-Veröffentlichung von Visual Studio „Orcas“ zur Verfügung gestellt werden.

Steve Fox ist Programmmanager im VSTO-Team (Visual Studio-Tools für Office). Seine Arbeitszeit ist so aufgeteilt, dass er einerseits extern mit VSTO-Kunden arbeitet, VSTO-Schulungen anbietet und VSTO-Seminare auf Konferenzen abhält, andererseits intern mit dem Entwicklungsteam an der Weiterentwicklung des VSTO-Produkts arbeitet.

Paul Stubbs ist Programmmanager im Team „Visual Studio-Tools für Office und Visual Tools for Applications“. Er hat gemeinsam mit Kathleen McGrath das Buch VSTO for Mere Mortals (Addison-Wesley, 2006) verfasst. Paul Stubbs war Referent auf der TechEd und der TechReady und beteiligt sich außerdem an der Entwicklercommunity in den Microsoft-Foren. Lesen Sie den Blog von Paul Stubbs unter blogs.msdn.com/pstubbs.

Page view tracker