Freigeben über


Übersicht über Hostelemente und Hoststeuerelemente

Hostelemente und Hoststeuerelemente sind Typen, die das Programmiermodell für Office-Lösungen bereitstellen, die mithilfe der Office-Entwicklungstools in Visual Studio erstellt werden. Hostelemente und Hoststeuerelemente ermöglichen eine Interaktion mit den Objektmodellen von Microsoft Office Word und Microsoft Office Excel, die auf COM basieren, ähnlich wie die Verwendung von verwalteten Objekten wie Windows Forms-Steuerelementen.

Gilt für: Die Informationen in diesem Thema gelten für Projekte auf Dokumentebene und VSTO-Add-In-Projekte für Excel und Word. Weitere Informationen finden Sie unter Funktionen verfügbar nach Office-Anwendung und Projekttyp.

Host-Elemente

Host-Elemente sind Typen, die sich an der Spitze der Objektmodellhierarchien in Office-Projekten befinden. Die Visual Studio Tools für Office Laufzeitumgebung definiert die folgenden Hostelemente für Word- und Excel-Lösungen:

  • Document

  • Workbook

  • Worksheet

  • ChartSheet

    Jeder dieser Typen erweitert ein Objekt, das nativ im Word- oder Excel-Objektmodell vorhanden ist, das als systemeigenes Office-Objekt bezeichnet wird. Beispielsweise erweitert das Document Hostelement das Document-Objekt, das in der primären Interop-Assembly für Word definiert ist.

    Hostelemente weisen in der Regel die gleiche Basisfunktionalität wie die entsprechenden Office-Objekte auf, werden jedoch mit den folgenden Features erweitert:

  • Die Möglichkeit zum Hosten von verwalteten Steuerelementen, einschließlich Hoststeuerelementen und Windows Forms-Steuerelementen.

  • Umfangreichere Ereignismodelle. Einige Dokument-, Arbeitsmappen- und Arbeitsblattereignisse in den systemeigenen Word- und Excel-Objektmodellen werden nur auf Anwendungsebene ausgelöst. Hostelemente stellen diese Ereignisse auf Dokumentebene bereit, sodass es einfacher ist, die Ereignisse für ein bestimmtes Dokument zu behandeln.

Grundlegendes zu Hostelementen in Projekten auf Dokumentebene

In Projekten auf Dokumentebene stellen Hostelemente einen Einstiegspunkt für Ihren Code bereit, und sie verfügen über Designer, mit denen Sie Ihre Lösung entwickeln können.

Die Document- und Worksheet-Host-Elemente haben zugeordnete Designer, die die visuelle Darstellung des Dokuments oder Arbeitsblatts sind, z. B. ein Windows Forms-Designer. Mit diesem Designer können Sie den Inhalt des Dokuments oder Arbeitsblatts direkt in Word oder Excel ändern und Steuerelemente auf die Entwurfsoberfläche ziehen. Weitere Informationen finden Sie unter Dokumenthostelement und Arbeitsblatthostelement.

Das Workbook Host-Element fungiert nicht als Container für Steuerelemente, die eine Benutzeroberfläche haben. Stattdessen funktioniert der Designer für dieses Hostelement als Komponentenfeld, mit dem Sie eine Komponente, z. B. DataSet, auf die Entwurfsoberfläche ziehen können. Weitere Informationen finden Sie im Hostelement der Arbeitsmappe.

Hostelemente können nicht programmgesteuert in dokumentenbezogenen Projekten erstellt werden. Verwenden Sie stattdessen die ThisDocument, ThisWorkbook, oder Sheetn Klassen, die Visual Studio in Ihrem Projekt zur Entwurfszeit automatisch generiert. Diese generierten Klassen werden von den Hostelementen abgeleitet, und sie stellen einen Einstiegspunkt für Ihren Code bereit. Weitere Informationen finden Sie unter "Programmgesteuerte Einschränkungen von Hostelementen und Hoststeuerelementen".

Grundlegendes zu Hostelementen in VSTO-Add-In-Projekten

Wenn Sie ein VSTO-Add-In erstellen, haben Sie standardmäßig keinen Zugriff auf Host-Elemente. Sie können jedoch Document, Workbook und Worksheet Host-Elemente in Word- und Excel-VSTO-Add-Ins zur Laufzeit generieren.

Nachdem Sie ein Hostelement generiert haben, können Sie Aufgaben ausführen, z. B. das Hinzufügen von Steuerelementen zu Dokumenten. Weitere Informationen finden Sie unter Erweitern von Word-Dokumenten und Excel-Arbeitsmappen in VSTO-Add-Ins zur Laufzeit.

Hoststeuerungen

Hoststeuerelemente erweitern verschiedene Benutzeroberflächenobjekte in den Word- und Excel-Objektmodellen, wie die Microsoft.Office.Interop.Word.ContentControl- und Range-Objekte.

Die folgenden Hoststeuerelemente sind für Excel-Projekte verfügbar:

  • Diagrammsteuerelement

  • ListObject-Steuerelement

  • NamedRange-Steuerelement

  • XmlMappedRange-Steuerelement

    Die folgenden Hoststeuerelemente sind für Word-Projekte verfügbar:

  • Lesezeichensteuerelement

  • Inhaltssteuerelemente

  • XMLNode-Steuerelement

  • XML-Nodes-Steuerelement

    Hoststeuerelemente, die Office-Dokumenten hinzugefügt werden, verhalten sich wie die systemeigenen Office-Objekte; Hoststeuerelemente verfügen jedoch über zusätzliche Funktionen, einschließlich Ereignisse und Datenbindungsfunktionen. Wenn Sie beispielsweise die Ereignisse eines systemeigenen Range Objekts in Excel erfassen möchten, müssen Sie zuerst das Änderungsereignis des Arbeitsblatts behandeln. Dann müssen Sie bestimmen, ob die Änderung innerhalb der Range erfolgt ist. Im Gegensatz dazu verfügt das NamedRange Hoststeuerelement über ein Change Ereignis, das Sie direkt behandeln können.

    Die Beziehung zwischen einem Hostelement und Hoststeuerelementen ähnelt der Beziehung zwischen einem Windows-Formular und Windows Forms-Steuerelementen. Genauso wie Sie ein Textfeld-Steuerelement auf einem Windows-Formular platzieren würden, setzen Sie ein NamedRange-Steuerelement auf ein Worksheet-Hostelement. Die folgende Abbildung zeigt die Beziehung zwischen Hostelementen und Hoststeuerelementen.

    Beziehung zwischen Hostelementen und Hoststeuerelementen

    Sie können auch Windows Forms-Steuerelemente in Ihren Office-Lösungen verwenden, indem Sie sie direkt zur Word- und Excel-Dokumentoberfläche hinzufügen. Weitere Informationen finden Sie unter Windows Forms-Steuerelemente in Office-Dokumenten ( Übersicht).

Hinweis

Das Hinzufügen von Hoststeuerelementen oder Windows Forms-Steuerelementen zu einem Word-Filialdokument wird nicht unterstützt.

Hinzufügen von Hoststeuerelementen zu Ihren Dokumenten

In Projekten auf Dokumentebene können Sie während der Entwurfszeit auf folgende Weise Host-Steuerelemente zu Ihren Word-Dokumenten oder Excel-Arbeitsblättern hinzufügen:

Namenshost-Steuerelemente

Wenn Sie ein Hoststeuerelement aus der Toolbox in Ihr Dokument ziehen, wird das Steuerelement automatisch mithilfe des Steuerelementtyps mit einer inkrementellen Zahl am Ende benannt. Textmarken werden z. B. " bookmark1", "bookmark2" usw. genannt. Wenn Sie die systemeigene Funktionalität von Word oder Excel verwenden, um das Steuerelement hinzuzufügen, können Sie es zu dem Zeitpunkt, zu dem Sie es erstellen, einen bestimmten Namen geben. Sie können die Steuerelemente auch umbenennen, indem Sie den Wert der Eigenschaft "Name " im Eigenschaftenfenster ändern.

Hinweis

Reservierte Wörter können nicht zum Benennen von Hoststeuerelementen verwendet werden. Wenn Sie z. B. einem Arbeitsblatt ein NamedRange Steuerelement hinzufügen und den Namen in "System" ändern, treten beim Erstellen des Projekts Fehler auf.

Hoststeuerelemente löschen

In Projekten auf Dokumentebene können Sie Hoststeuerelemente zum Entwurfszeitpunkt löschen, indem Sie das Steuerelement im Excel-Arbeitsblatt oder Word-Dokument auswählen und die Entf-Taste drücken. Sie müssen jedoch das Dialogfeld " Namen definieren " in Excel verwenden, um Steuerelemente zu löschen NamedRange .

Wenn Sie einem Dokument zur Entwurfszeit ein Hoststeuerelement hinzufügen, sollten Sie es zur Laufzeit nicht programmgesteuert entfernen, da beim nächsten Versuch, das Steuerelement im Code zu verwenden, eine Ausnahme ausgelöst wird. Die Delete Methode eines Hoststeuerelements entfernt nur Hoststeuerelemente, die dem Dokument zur Laufzeit hinzugefügt werden. Wenn Sie die Delete Methode eines Hoststeuerelements aufrufen, das zur Entwurfszeit erstellt wurde, wird eine Ausnahme ausgelöst.

Eine Delete-Methode von einem NamedRange löscht nur dann NamedRange erfolgreich, wenn es programmgesteuert zum Arbeitsblatt hinzugefügt wurde; dies wird als dynamisches Erstellen von Hoststeuerelementen bezeichnet. Dynamisch erstellte Hoststeuerelemente können auch entfernt werden, indem der Steuerelementname an die Remove-Methode der Controls- oder Controls-Eigenschaft übergeben wird. Weitere Informationen finden Sie unter Hinzufügen von Steuerelementen zu Office-Dokumenten während der Ausführung.

Wenn Endbenutzer ein Hoststeuerelement zur Laufzeit aus dem Dokument löschen, schlägt die Lösung möglicherweise unerwartet fehl. Sie können die Dokumentschutzfeatures in Word und Excel verwenden, um die Hoststeuerelemente vor dem Löschen zu schützen. Weitere Informationen finden Sie unter Office-Entwicklungsbeispiele und exemplarische Vorgehensweisen.

Hinweis

Entfernen Sie Steuerelemente nicht programmgesteuert während des Shutdown Ereignishandlers des Dokuments oder Arbeitsblatts. Die UI-Elemente sind nicht mehr verfügbar, wenn das Shutdown Ereignis eintritt. Wenn Sie Steuerelemente entfernen möchten, bevor die Anwendung geschlossen wird, fügen Sie den Code einem anderen Ereignishandler wie BeforeClose oder BeforeSave hinzu.

Programm gegen Hoststeuerungsereignisse

Eine Möglichkeit zum Erweitern von Office-Objekten durch Hoststeuerelemente besteht darin, Ereignisse hinzuzufügen. Beispielsweise enthält das Range Objekt in Excel und Bookmark objekt in Word keine Ereignisse, aber die Visual Studio Tools für Office-Laufzeit erweitert diese Objekte durch Hinzufügen programmierbarer Ereignisse. Sie können auf diese Ereignisse in der gleichen Art und Weise zugreifen wie auf Ereignisse von Steuerelementen in Windows Forms: über die Ereignis-Dropdownliste in Visual Basic und über die Ereignisseigenschaftsseite in C#. Weitere Informationen finden Sie unter Einführung: Programmierung gegen Ereignisse eines NamedRange-Steuerungselements.

Hinweis

Sie sollten die EnableEvents Eigenschaft des Application Objekts in Excel nicht auf "false" festlegen. Durch Festlegen dieser Eigenschaft auf "false " wird verhindert, dass Excel Ereignisse auslöst, einschließlich der Ereignisse von Hoststeuerelementen.