Freigeben über


Übersicht über Hostelemente und Hoststeuerelemente

Hostelemente und Hoststeuerelemente sind Programmierelemente, die die Bereitstellung des Programmiermodells für Office-Projektmappen ermöglichen, die mithilfe der Office-Entwicklungstools in Visual Studio erstellt werden. Hostelemente und Hoststeuerelemente vereinfachen die Interaktion zwischen Objektmodellen von Microsoft Office Word und Microsoft Office Excel (COM-basiert) und 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 features available by Office-App lication and project type.

Hostelemente

Hostelemente sind Programmiertypen, die in den Objektmodellhierarchien in Office-Projekten ganz oben angesiedelt sind. Die Visual Studio-Tools für Office-Laufzeit definiert die folgenden Hostelemente für Word- und Excel-Lösungen:

  • Document

  • Workbook

  • Worksheet

  • ChartSheet

    Jeder dieser Typen erweitert ein Objekt, das als systemeigenes Objekt im Word- oder Excel-Objektmodell vorhanden ist und als systemeigenes Office-Objektbezeichnet wird. Das Document -Hostelement erweitert beispielsweise das Document -Objekt, das in der primären Interopassembly für Word definiert ist.

    Hostelemente verfügen im Allgemeinen über dieselben Standardfunktionen wie die entsprechenden Office-Objekte, wurden jedoch durch folgende Features ergänzt:

  • Die Fähigkeit, verwaltete Steuerelemente, einschließlich Hoststeuerelementen und Windows Forms-Steuerelementen, zu hosten.

  • Umfangreichere Ereignismodelle. Einige Dokument-, Arbeitsmappen und Arbeitsblattereignisse in systemeigenen Word- und Excel-Objektmodellen werden nur auf Anwendungsebene ausgelöst. Hostelemente stellen diese Ereignisse auf Dokumentebene bereit, damit 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 den Code bereit. Außerdem verfügen sie über Designer, die Sie bei der Umsetzung Ihrer Projektmappen unterstützen.

Den Hostelementen Document und Worksheet sind Designer zugeordnet, die einer visuellen Darstellung des Dokuments oder Arbeitsblatts entsprechen, ähnlich einem Windows Forms-Designer. Sie können diesen Designer verwenden, um den Inhalt des Dokuments oder Arbeitsblatts direkt in Word oder Excel zu ändern und um Steuerelemente auf die Entwurfsoberfläche zu ziehen. Weitere Informationen finden Sie unter Dokumenthostelement und Arbeitsblatthostelement.

Das Hostelement Workbook dient nicht als Container für Steuerelemente, die über eine Benutzeroberfläche verfügen. Stattdessen fungiert der Designer für dieses Hostelement als Komponentenleiste, mit der Sie eine Komponente, z. B. eine DataSet, auf die Entwurfsoberfläche ziehen können. Weitere Informationen finden Sie im Arbeitsmappenhostelement.

Hostelemente können nicht programmgesteuert in Projekten auf Dokumentebene erstellt werden. Stattdessen verwenden Sie die Klassen ThisDocument, ThisWorkbook, oder Sheetn , die von Visual Studio zur Entwurfszeit automatisch im Projekt generiert werden. Diese generierten Klassen werden von Hostelementen abgeleitet und bieten einen Einstiegspunkt für den Code. 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 Hostelemente. Sie können zur Laufzeit jedoch die Hostelemente Document, Workbookund Worksheet in Word- und Excel-VSTO-Add-Ins generieren.

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

Hoststeuerelemente

Hoststeuerelemente erweitern verschiedene Benutzeroberflächenobjekte im Word- und Excel-Objektmodell, z. B. die Objekte Microsoft.Office.Interop.Word.ContentControl und Range.

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

  • XMLNodes-Steuerelement

    Hoststeuerelemente, die Office-Dokumenten hinzugefügt werden, verhalten sich wie systemeigene Office-Objekte; Hoststeuerelemente verfügen jedoch über zusätzliche Funktionalität wie z. B. Ereignisse und Datenbindungsfunktionen. Wenn Sie die Ereignisse eines systemeigenen Range -Objekts in Excel z. B. aufzeichnen möchten, müssen Sie zuerst das Änderungsereignis des Arbeitsblatts behandeln. Anschließend müssen Sie feststellen, ob die Änderung innerhalb von Rangeaufgetreten 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 Form- und Windows Forms-Steuerelement. Ein NamedRange -Steuerelement wird auf die gleiche Weise auf einem Worksheet -Hostelement platziert wie ein Textfeld-Steuerelement auf einem Windows Form. Die folgende Abbildung veranschaulicht die Beziehung zwischen Hostelementen und Hoststeuerelementen.

    Relationship between host items and host controls

    Sie können auch Windows Forms-Steuerelemente in Office-Projektmappen 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 haben Sie zur Entwurfszeit folgende Möglichkeiten, Ihren Word-Dokumenten oder Excel-Arbeitsblättern Hoststeuerelemente hinzuzufügen:

Namenhoststeuerelemente

Wenn Sie ein Hoststeuerelement aus der Toolbox in das Dokument ziehen, wird das Steuerelement automatisch nach dem Steuerelementtyp gefolgt von einer fortlaufenden Nummer benannt. Lesezeichen erhalten beispielsweise den Namen Bookmark1, Bookmark2usw. Wenn Sie zum Hinzufügen des Steuerelements die systemeigene Funktionalität von Word oder Excel verwenden, können Sie dem Steuerelement bei der Erstellung einen spezifischen Namen geben. Sie können die Steuerelemente auch umbenennen, indem Sie den Wert der Name -Eigenschaft im Fenster Eigenschaften ändern.

Hinweis

Hoststeuerelemente können nicht nach reservierten Wörtern benannt werden. Wenn Sie einem Arbeitsblatt beispielsweise ein NamedRange -Steuerelement hinzufügen und den Namen in Systemändern, treten bei der Projekterstellung Fehler auf.

Löschen von Hoststeuerelementen

In Projekten auf Dokumentebene können Sie Hoststeuerelemente zur Entwurfszeit löschen, indem Sie das Steuerelement im Excel-Arbeitsblatt oder Word-Dokument auswählen und die ENTF-TASTE drücken. Um -Steuerelemente zu löschen, müssen Sie jedoch das Dialogfeld Namen definieren NamedRange in Excel verwenden.

Wenn Sie einem Dokument zur Entwurfszeit ein Hoststeuerelement hinzufügen, sollte es zur Laufzeit nicht programmgesteuert entfernt werden, da beim nächsten Versuch, das Steuerelement im Code zu verwenden, eine Ausnahme ausgelöst wird. Durch die Delete -Methode eines Hoststeuerelements werden nur Hoststeuerelemente entfernt, 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.

Durch die Delete -Methode eines NamedRange wird NamedRange beispielsweise nur erfolgreich gelöscht, wenn er dem Arbeitsblatt programmgesteuert hinzugefügt wurde. Dies wird als dynamische Erstellung von Hoststeuerelementen bezeichnet. Dynamisch erstellte Hoststeuerelemente können außerdem 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 zur Laufzeit.

Wenn Endbenutzer zur Laufzeit ein Hoststeuerelement aus dem Dokument löschen, kann die Projektmappe unerwartete Fehler verursachen. Sie können die Dokumentschutzfeatures in Word und Excel verwenden, um das Löschen der Hoststeuerelemente zu verhindern. Weitere Informationen finden Sie unter Office-Entwicklungsbeispiele und exemplarische Vorgehensweisen.

Hinweis

Vermeiden Sie es, Steuerelemente während des Shutdown -Ereignishandlerzeitraums des Dokuments oder Arbeitsblatts programmgesteuert zu entfernen. Die Benutzeroberflächenelemente sind nicht mehr verfügbar, wenn das Shutdown -Ereignis eintritt. Wenn Sie Steuerelemente vor dem Schließen der Anwendung entfernen möchten, können Sie Ihren Code einem anderen Ereignishandler hinzufügen, z. B. BeforeClose oder BeforeSave.

Programm für Hoststeuerelementereignisse

Eine Möglichkeit, wie Office-Objekte von Hoststeuerelementen erweitert werden, ist das Hinzufügen von Ereignissen. Beispielsweise verfügt das Range Objekt in Excel und Bookmark objekt in Word nicht über Ereignisse, aber die Visual Studio-Tools für Office-Laufzeit erweitert diese Objekte durch Hinzufügen programmierbarer Ereignisse. Der Zugriff und die Programmierung in Abhängigkeit von diesen Ereignissen erfolgt auf die gleiche Weise wie der Zugriff auf Ereignisse von Windows Forms-Steuerelementen: über die Ereignis-Dropdownliste in Visual Basic und die Eigenschaftenseite in C#. Weitere Informationen finden Sie unter Walkthrough: Program against events of a NamedRange control.

Hinweis

Sie sollten die EnableEvents -Eigenschaft des Application -Objekts in Excel nicht auf falsebezeichnet wird. Wenn Sie diese Eigenschaft auf false festlegen, kann Excel keine Ereignisse auslösen, auch nicht die Ereignisse von Hoststeuerelementen.