Benutzerdefinierte Aufgabenbereiche

Aufgabenbereiche sind Bereiche der Benutzeroberfläche, die in einer Microsoft Office-Anwendung normalerweise auf einer Seite eines Fensters angedockt sind. Mit benutzerdefinierten Aufgabenbereichen können Sie einen eigenen Aufgabenbereich erstellen und Benutzern eine vertraute Oberfläche für den Zugriff auf die Funktionen Ihrer Projektmappe zur Verfügung stellen. Die Oberfläche kann beispielsweise Steuerelemente enthalten, die Code zum Ändern von Dokumenten oder zum Anzeigen von Daten aus einer Datenquelle ausführen.

Gilt für: Die Informationen in diesem Thema gelten für VSTO-Add-In-Projekte für Outlook. Weitere Informationen finden Sie unter features available by Office-App lication and project type.

Hinweis

Ein benutzerdefinierter Aufgabenbereich ist nicht das gleiche wie der Aktionsbereich. Der Aktionsbereich ist Bestandteil von Anpassungen auf Dokumentebene für Microsoft Office Word und Microsoft Office Excel. Weitere Informationen finden Sie im Übersichtsbereich "Aktionen".

Vorteile von benutzerdefinierten Aufgabenbereichen

Mit benutzerdefinierten Aufgabenbereichen können Sie Funktionen in eine vertraute Benutzeroberfläche integrieren. Sie können mit Visual Studio-Tools schnell einen benutzerdefinierten Aufgabenbereich erstellen.

Vertraute Benutzeroberfläche

Benutzer von Anwendungen im Microsoft Office System sind bereits mit der Verwendung von Aufgabenbereichen wie dem Aufgabenbereich "Formatvorlagen" und "Formatierung " in Word vertraut. Das Verhalten von benutzerdefinierten Aufgabenbereichen entspricht dem Verhalten anderer Aufgabenbereiche in Microsoft Office System. Benutzer können benutzerdefinierte Aufgabenbereiche an verschiedene Seiten des Anwendungsfensters andocken, oder sie können benutzerdefinierte Aufgabenbereiche an eine beliebige Position im Fenster ziehen. Sie können ein VSTO-Add-In erstellen, das mehrere benutzerdefinierte Aufgabenbereiche gleichzeitig anzeigt, wobei die Benutzer jeden Aufgabenbereich einzeln steuern können.

Windows Forms-Unterstützung

Die Benutzeroberfläche eines benutzerdefinierten Aufgabenbereichs, den Sie mit den Office-Entwicklungstools in Visual Studio erstellen, basiert auf Windows Forms-Steuerelementen. Sie können zum Entwerfen der Benutzeroberfläche für einen benutzerdefinierten Aufgabenbereich den vertrauten Windows Forms-Designer verwenden. Sie können auch die Datenbindungsunterstützung in Windows Forms nutzen, um eine Datenquelle an Steuerelemente im Aufgabenbereich zu binden.

Erstellen eines benutzerdefinierten Aufgabenbereichs

Ein einfacher benutzerdefinierter Aufgabenbereich kann in zwei Schritten erstellt werden:

  1. Erstellen Sie eine Benutzeroberfläche für den benutzerdefinierten Aufgabenbereich, indem Sie einem UserControl-Objekt Windows Forms-Steuerelemente hinzufügen.

  2. Instanziieren Sie den benutzerdefinierten Aufgabenbereich, indem Sie das Benutzersteuerelement an das CustomTaskPaneCollection-Objekt im VSTO-Add-In übergeben. Diese Auflistung gibt ein neues CustomTaskPane-Objekt zurück, mit dem Sie die Darstellung des Aufgabenbereichs ändern und auf Benutzerereignisse reagieren können.

    Weitere Informationen finden Sie unter How to: Add a custom task pane to an application.

Erstellen der Benutzeroberfläche

Alle benutzerdefinierten Aufgabenbereiche, die mit den Office-Entwicklungstools in Visual Studio erstellt werden, enthalten ein UserControl-Objekt. Dieses Benutzersteuerelement stellt die Benutzeroberfläche des benutzerdefinierten Aufgabenbereichs bereit. Sie können das Benutzersteuerelement zur Entwurfszeit oder zur Laufzeit erstellen. Wenn Sie das Benutzersteuerelement zur Entwurfszeit erstellen, können Sie die Benutzeroberfläche des Aufgabenbereichs mit dem Windows Forms-Designer entwerfen.

Instanziieren des benutzerdefinierten Aufgabenbereichs

Nachdem Sie ein Benutzersteuerelement erstellt haben, das die Benutzeroberfläche des benutzerdefinierten Aufgabenbereichs enthält, müssen Sie CustomTaskPane instanziieren. Übergeben Sie hierfür das Benutzersteuerelement an CustomTaskPaneCollection im VSTO-Add-In, indem Sie eine der Add-Methoden aufrufen. Diese Auflistung wird als CustomTaskPanes-Feld der ThisAddIn-Klasse verfügbar gemacht. Das folgende Codebeispiel sollte von der ThisAddIn-Klasse ausgeführt werden.

myUserControl1 = new MyUserControl();
myCustomTaskPane = this.CustomTaskPanes.Add(myUserControl1, "My Task Pane");
myCustomTaskPane.Visible = true;

Die Add-Methoden geben ein neues CustomTaskPane-Objekt zurück. Sie können dieses Objekt verwenden, um die Darstellung des Aufgabenbereichs zu ändern und auf Benutzerereignisse zu reagieren.

Steuern des Aufgabenbereichs in mehreren Fenstern

Benutzerdefinierte Aufgabenbereiche sind einem Dokumentrahmenfenster zugeordnet, das eine Ansicht eines Dokuments oder Elements für den Benutzer darstellt. Der Aufgabenbereich ist nur sichtbar, wenn das zugeordnete Fenster sichtbar ist.

Um zu bestimmen, in welchem Fenster der benutzerdefinierte Aufgabenbereich angezeigt wird, verwenden Sie die entsprechende Add-Methodenüberladung beim Erstellen des Aufgabenbereichs:

  • Um dem aktiven Fenster den Aufgabenbereich zuzuordnen, verwenden Sie die Add-Methode.

  • Um den Aufgabenbereich einem Dokument zuzuordnen, das von einem angegebenen Fenster gehostet wird, verwenden Sie die Add-Methode.

    Wenn mehrere Fenster geöffnet sind, erfordern einige Office-Anwendungen explizite Anweisungen dazu, wann der Aufgabenbereich erstellt oder angezeigt werden soll. Daher ist es wichtig, zu entscheiden, wo der benutzerdefinierte Aufgabenbereich im Code instanziiert werden soll, um sicherzustellen, dass der Aufgabenbereich mit den entsprechenden Dokumenten oder Elementen in der Anwendung angezeigt wird. Weitere Informationen finden Sie unter Verwalten von benutzerdefinierten Aufgabenbereichen in Anwendungsfenstern.

Zugreifen auf die Anwendung über den Aufgabenbereich

Wenn Sie die Anwendung über das Benutzersteuerelement automatisieren möchten, können Sie mithilfe von Globals.ThisAddIn.Application im Code direkt auf das Objektmodell zugreifen. Die statische Globals-Klasse ermöglicht den Zugriff auf das ThisAddIn-Objekt. Das Application-Feld dieses Objekts ist der Einstiegspunkt in das Objektmodell der Anwendung.

Weitere Informationen zum Application Feld des ThisAddIn Objekts finden Sie unter Programm-VSTO-Add-Ins. Eine exemplarische Vorgehensweise zum Automatisieren einer Anwendung aus einem benutzerdefinierten Aufgabenbereich finden Sie unter Walkthrough: Automatic an application from a custom task pane. Weitere Informationen zur Globals Klasse finden Sie unter globalen Zugriff auf Objekte in Office-Projekten.

Verwalten der Benutzeroberfläche des Aufgabenbereichs

Nachdem Sie den Aufgabenbereich erstellt haben, können Sie Eigenschaften und Ereignisse des CustomTaskPane-Objekts verwenden, um die Benutzeroberfläche des Aufgabenbereichs zu steuern und auf Änderungen des Aufgabenbereichs durch Benutzer zu reagieren.

Anzeigen des benutzerdefinierten Aufgabenbereichs

Der Aufgabenbereich ist standardmäßig nicht sichtbar. Um den Aufgabenbereich sichtbar zu machen, müssen Sie die Visible Eigenschaft auf "true" festlegen.

Benutzer können einen Aufgabenbereich jederzeit schließen, indem Sie in der Ecke des Aufgabenbereichs auf die Schaltfläche "Schließen " (X) klicken. Es gibt jedoch kein Standardverfahren für das erneute Öffnen des benutzerdefinierten Aufgabenbereichs durch die Benutzer. Wenn ein Benutzer einen benutzerdefinierten Aufgabenbereich schließt, kann dieser Benutzer den benutzerdefinierten Aufgabenbereich nur erneut anzeigen, wenn Sie ein Verfahren zum Anzeigen des Aufgabenbereichs bereitstellen.

Wenn Sie im VSTO-Add-In einen benutzerdefinierten Aufgabenbereich erstellen, sollten Sie auch ein Benutzeroberflächenelement, z. B. eine Schaltfläche, erstellen, auf das Benutzer klicken können, um den benutzerdefinierten Aufgabenbereich anzuzeigen oder auszublenden. Wenn Sie einen benutzerdefinierten Aufgabenbereich in einer Microsoft Office-Anwendung erstellen, die das Anpassen des Menübands unterstützt, können Sie dem Menüband eine Steuerelementgruppe mit einer Schaltfläche hinzufügen, über die der benutzerdefinierte Aufgabenbereich angezeigt und ausgeblendet wird. Eine exemplarische Vorgehensweise, die dies veranschaulicht, finden Sie unter Exemplarische Vorgehensweise: Synchronisieren eines benutzerdefinierten Aufgabenbereichs mit einer Menübandschaltfläche.

Wenn Sie einen benutzerdefinierten Aufgabenbereich in einer Microsoft Office-Anwendung erstellen, die das Anpassen des Menübands nicht unterstützt, können Sie eine CommandBarButton hinzufügen, mit der der benutzerdefinierte Aufgabenbereich angezeigt oder ausgeblendet wird.

Ändern der Darstellung des Aufgabenbereichs

Die Größe und Position eines benutzerdefinierten Aufgabenbereichs können mithilfe der Eigenschaften des CustomTaskPane-Objekts gesteuert werden. Mit den Eigenschaften des UserControl-Objekts, das im benutzerdefinierten Aufgabenbereich enthalten ist, können Sie viele weitere Änderungen an der Darstellung eines benutzerdefinierten Aufgabenbereichs vornehmen. Beispielsweise können Sie mit der BackgroundImage-Eigenschaft des Benutzersteuerelements ein Hintergrundbild für einen benutzerdefinierten Aufgabenbereich angeben.

In der folgenden Tabelle werden die Änderungen aufgelistet, die Sie mithilfe von CustomTaskPane-Eigenschaften an einem benutzerdefinierten Aufgabenbereich vornehmen können.

Aufgabe Eigenschaft
So ändern Sie die Größe des Aufgabenbereichs Height

Width
So ändern Sie die Position des Aufgabenbereichs DockPosition
So blenden Sie den Aufgabenbereich aus oder machen ihn sichtbar Visible
So verhindern Sie das Ändern der Position des Aufgabenbereichs durch Benutzer DockPositionRestrict

Programm für benutzerdefinierte Aufgabenbereichereignisse

Sie können festlegen, dass das VSTO-Add-In auf Änderungen des benutzerdefinierten Aufgabenbereichs durch den Benutzer reagiert. Wenn der Benutzer beispielsweise die Ausrichtung des Bereichs von vertikal in horizontal ändert, sollen möglicherweise die Steuerelemente neu positioniert werden.

In der folgenden Tabelle sind die Ereignisse aufgeführt, die Sie behandeln können, um auf Änderungen von Benutzern am benutzerdefinierten Aufgabenbereich zu reagieren.

Aufgabe Ereignis
So reagieren Sie, wenn der Benutzer die Position des Aufgabenbereichs ändert DockPositionChanged
So reagieren Sie, wenn der Benutzer den Aufgabenbereich ausblendet oder sichtbar macht VisibleChanged

Bereinigen von Ressourcen, die vom Aufgabenbereich verwendet werden

Nachdem Sie einen benutzerdefinierten Aufgabenbereich erstellt haben, bleibt das CustomTaskPane-Objekt so lange im Arbeitsspeicher, wie das VSTO-Add-In ausgeführt wird. Das Objekt wird wieder Standard im Arbeitsspeicher, auch wenn der Benutzer in der Ecke des Aufgabenbereichs auf die Schaltfläche "Schließen" (X) klickt.

Um vom Aufgabenbereich verwendete Ressourcen zu bereinigen, während das VSTO-Add-In noch ausgeführt wird, verwenden Sie die Remove-Methode oder RemoveAt-Methode. Durch diese Methoden werden das angegebene CustomTaskPane-Objekt aus der CustomTaskPanes-Auflistung entfernt und die Dispose-Methode des Objekts aufgerufen.

Die Visual Studio-Tools für Die Office-Laufzeit sauber Ressourcen, die vom benutzerdefinierten Aufgabenbereich verwendet werden, automatisch sauber, wenn das VSTO-Add-In entladen wird. Rufen Sie die Remove Methoden im RemoveAtThisAddIn_Shutdown Ereignishandler in Ihrem Projekt nicht auf. Diese Methoden lösen einen ObjectDisposedException, da die Visual Studio-Tools für Office-Laufzeit sauber ressourcen, die CustomTaskPane vom Objekt verwendet werden, bevor ThisAddIn_Shutdown aufgerufen wird. Weitere Informationen ThisAddIn_Shutdownfinden Sie unter "Ereignisse in Office-Projekten".

Verwalten von benutzerdefinierten Aufgabenbereichen in mehreren Anwendungsfenstern

Wenn Sie einen benutzerdefinierten Aufgabenbereich in einer Anwendung erstellen, die mehrere Fenster zum Anzeigen von Dokumenten und anderen Elementen verwendet, müssen Sie in zusätzlichen Schritten sicherstellen, dass der Aufgabenbereich sichtbar ist, wenn der Benutzer es erwartet.

Benutzerdefinierte Aufgabenbereiche sind in allen Anwendungen einem Dokumentrahmenfenster zugeordnet, das eine Ansicht eines Dokuments oder Elements für den Benutzer enthält. Der Aufgabenbereich ist nur sichtbar, wenn das zugeordnete Fenster sichtbar ist. Allerdings verwenden nicht alle Anwendungen Dokumentrahmenfenster auf dieselbe Weise.

Für die folgenden Anwendungsgruppen gelten unterschiedliche Entwicklungsanforderungen:

Outlook

Wenn Sie einen benutzerdefinierten Aufgabenbereich für Outlook erstellen, wird dieser einem bestimmten Explorer- oder Inspektor-Fenster zugeordnet. Explorer sind Fenster, die den Inhalt eines Ordners anzeigen, und Inspektoren sind Fenster, in denen ein Element wie eine E-Mail-Nachricht oder eine Aufgabe angezeigt wird.

Wenn Sie einen benutzerdefinierten Aufgabenbereich mit mehreren Explorer- oder Inspektor-Fenstern anzeigen möchten, müssen Sie eine neue Instanz des benutzerdefinierten Aufgabenbereichs erstellen, wenn ein Explorer- oder Inspektor-Fenster geöffnet wird. Behandeln Sie dazu ein Ereignis, das ausgelöst wird, wenn ein Explorer- oder Inspektor-Fenster erstellt wird, und erstellen Sie dann den Aufgabenbereich im Ereignishandler. Sie können auch Explorer- und Inspektor-Ereignisse behandeln, um Aufgabenbereiche abhängig davon auszublenden oder anzuzeigen, welches Fenster sichtbar ist.

Um den Aufgabenbereich einem bestimmten Explorer oder Inspektor zuzuordnen, verwenden Sie die Add Methode, um den Aufgabenbereich zu erstellen und das Explorer Objekt Inspector an den Fensterparameter zu übergeben. Weitere Informationen zum Erstellen benutzerdefinierter Aufgabenbereiche finden Sie unter Übersicht über benutzerdefinierte Aufgabenbereiche.

Verhindern mehrerer Instanzen eines benutzerdefinierten Aufgabenbereichs in Outlook

Um zu verhindern, dass in Outlook-Fenstern mehrere Instanzen eines benutzerdefinierten Aufgabenbereichs angezeigt werden, müssen Sie den benutzerdefinierten Aufgabenbereich explizit aus der CustomTaskPanes-Auflistung der ThisAddIn-Klasse entfernen, wenn die einzelnen Fenster geschlossen werden. Rufen Sie die Remove-Methode in einem Ereignis auf, das beim Schließen eines Fensters ausgelöst wird, z. B. Close oder Close.

Wenn Sie den benutzerdefinierten Aufgabenbereich nicht explizit entfernen, werden in Outlook-Fenstern möglicherweise mehrere Instanzen des benutzerdefinierten Aufgabenbereichs angezeigt. Fenster werden in Outlook gelegentlich wiederverwendet, und in wiederverwendeten Fenstern werden Verweise auf benutzerdefinierte Aufgabenbereiche beibehalten, die an die Fenster angefügt waren.

Word, InfoPath und PowerPoint

In Word, InfoPath und PowerPoint wird jedes Dokument in einem anderen Dokumentrahmenfenster angezeigt. Wenn Sie einen benutzerdefinierten Aufgabenbereich für diese Anwendungen erstellen, ist dieser nur einem bestimmten Dokument zugeordnet. Wenn der Benutzer ein anderes Dokument öffnet, wird der benutzerdefinierte Aufgabenbereich ausgeblendet, bis das vorherige Dokument wieder sichtbar ist.

Wenn Sie einen benutzerdefinierten Aufgabenbereich mit mehreren Dokumenten anzeigen möchten, erstellen Sie eine neue Instanz des benutzerdefinierten Aufgabenbereichs, wenn der Benutzer ein neues Dokument erstellt oder ein vorhandenes Dokument öffnet. Behandeln Sie dazu Ereignisse, die ausgelöst werden, wenn ein Dokument erstellt oder geöffnet wird, und erstellen Sie dann den Aufgabenbereich in den Ereignishandlern. Sie können auch Dokumentereignisse behandeln, um Aufgabenbereiche abhängig davon auszublenden oder anzuzeigen, welches Dokument sichtbar ist.

Um den Aufgabenbereich einem bestimmten Dokumentfenster zuzuordnen, verwenden Sie die Add Methode, um den Aufgabenbereich zu erstellen, und übergeben Sie einen Window (für Word), WindowObject (für InfoPath) oder DocumentWindow (für PowerPoint) an den Fensterparameter .

Word-Ereignisse

Um den Zustand von Dokumentfenstern in Word zu überwachen, können Sie die folgenden Ereignisse behandeln:

InfoPath-Ereignisse

Um den Zustand von Dokumentfenstern in InfoPath zu überwachen, können Sie die folgenden Ereignisse behandeln:

PowerPoint-Ereignisse

Um den Zustand von Dokumentfenstern in PowerPoint zu überwachen, können Sie die folgenden Ereignisse behandeln: