Programmgesteuerte Einschränkungen von Hostelementen und Hoststeuerelementen

Jedes Hostelement und Hoststeuerelement ist so konzipiert, dass es sich wie ein entsprechendes systemeigenes Microsoft Office Word- oder Microsoft Office Excel-Objekt mit zusätzlichen Funktionen verhält. Es gibt jedoch einige grundlegende Unterschiede zwischen dem Verhalten von Hostelementen und Hoststeuerelementen und systemeigenen Office-Objekten zur Laufzeit.

Allgemeine Informationen zu Hostelementen und Hoststeuerelementen finden Sie unter Übersicht über Hostelemente und Hoststeuerelemente.

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.

Programmgesteuertes Erstellen von Hostelementen

Wenn Sie ein Dokument, eine Arbeitsmappe oder ein Arbeitsblatt mithilfe des Word- oder Excel-Objektmodells zur Laufzeit programmgesteuert erstellen, ist das Element kein Hostelement. Stattdessen ist das neue Objekt ein systemeigenes Office-Objekt. Wenn Sie z. B. die Add -Methode zum Erstellen eines neuen Word-Dokuments zur Laufzeit verwenden, handelt es sich dabei um ein systemeigenes Document -Objekt, anstatt um ein Document -Hostelement. Beim Erstellen eines neuen Arbeitsblatts zur Laufzeit mithilfe der Add -Methode erhalten Sie entsprechend ein systemeigenes Worksheet -Objekt, anstatt ein Worksheet -Hostelement.

In Projekten auf Dokumentebene können Sie zur Laufzeit keine Hostelemente erstellen. Hostelemente können in Projekten auf Dokumentebene nur zur Entwurfszeit erstellt werden. Weitere Informationen finden Sie unter Dokumenthostelement, Arbeitsmappenhostelement und Arbeitsblatthostelement.

In VSTO-Add-In-Projekten können Sie Document-, Workbook- oder Worksheet -Hostelemente zur Laufzeit erstellen. Weitere Informationen finden Sie unter Erweitern von Word-Dokumenten und Excel-Arbeitsmappen in VSTO-Add-Ins zur Laufzeit.

Programmgesteuertes Erstellen von Hoststeuerelementen

Sie können Hoststeuerelemente zur Laufzeit programmgesteuert zu einem Document - oder Worksheet -Hostelement hinzufügen. Weitere Informationen finden Sie unter Hinzufügen von Steuerelementen zu Office-Dokumenten zur Laufzeit.

Sie können Hoststeuerelemente nicht zu einem systemeigenen Document oder Worksheethinzufügen.

Hinweis

Die folgenden Hoststeuerelemente können nicht programmgesteuert zu Arbeitsblättern oder Dokumenten hinzugefügt werden: XmlMappedRange, XMLNodeund XMLNodes.

Grundlegendes zu Typunterschieden zwischen Hostelementen, Hoststeuerelementen und systemeigenen Office-Objekten

Für jedes Hostelement und Hoststeuerelement gibt es ein zugrunde liegendes systemeigenes Microsoft Office Word- oder Microsoft Office Excel-Objekt. Sie können auf das zugrunde liegende Objekt zugreifen, indem Sie die InnerObject-Eigenschaft des Hostelements oder des Hoststeuerelements verwenden. Allerdings besteht keine Möglichkeit, ein systemeigenes Office-Objekt in ein entsprechendes Hostelement oder Hoststeuerelement umzuwandeln. Wenn Sie versuchen, ein systemeigenes Office-Objekt in ein Hostelement oder Hoststeuerelement umzuwandeln, wird ein InvalidCastException ausgelöst.

Es gibt verschiedene Szenarien, in denen sich die Unterschiede zwischen den Typen von Hostelementen und Hoststeuerelementen sowie den zugrunde liegenden systemeigenen Office-Objekte auf den Code auswirken können.

Übergeben von Hoststeuerelementen an Methoden und Eigenschaften

In Word können Sie ein Hoststeuerelement nicht an eine Methode oder Eigenschaft übergeben, die ein systemeigenes Word-Objekt als Parameter erfordert. Sie müssen die InnerObject-Eigenschaft des Hoststeuerelements verwenden, um das zugrunde liegende systemeigene Word-Objekt zurückzugeben. Sie können z. B. ein Bookmark -Objekt an eine Methode übergeben, indem Sie die InnerObject -Eigenschaft des Bookmark -Hoststeuerelements an die Methode übergeben.

In Excel müssen Sie die InnerObject-Eigenschaft des Hoststeuerelements verwenden, um das Hoststeuerelement an eine Methode oder Eigenschaft zu übergeben, wenn die Methode oder Eigenschaft das zugrunde liegende Excel-Objekt erwartet.

Im folgenden Beispiel wird ein NamedRange -Steuerelement erstellt und an die AutoFill -Methode übergeben. Der Code verwendet die InnerObject -Eigenschaft des benannten Bereichs, um das zugrunde liegende Office- Range zurückzugeben, das von der AutoFill -Methode benötigt wird.

this.Range["A1"].Value2 = "Monday";
this.Range["A2"].Value2 = "Tuesday";

Microsoft.Office.Tools.Excel.NamedRange dayRange = 
    this.Controls.AddNamedRange(this.Range["A1", "A7"], "dayRange");
this.Range["A1", "A2"].AutoFill(dayRange.InnerObject, Excel.XlAutoFillType.xlFillDays);

Rückgabetypen von systemeigenen Office-Methoden und -Eigenschaften

Die meisten Methoden und Eigenschaften von Hostelementen geben das zugrunde liegende systemeigene Office-Objekt zurück, auf dem das Hostelement basiert. Die Parent -Eigenschaft des NamedRange -Hoststeuerelements in Excel gibt z. B. ein Worksheet -Objekt anstelle eines Worksheet -Hostelements zurück. Die Parent -Eigenschaft eines RichTextContentControl -Hoststeuerelements in Word gibt entsprechend ein Document -Objekt anstelle eines Document -Hostelements zurück.

Zugriffssammlungen von Hoststeuerelementen

Die Visual Studio-Tools für Die Office-Laufzeit stellt keine einzelnen Auflistungen für jeden Hoststeuerelementtyp bereit. Verwenden Sie stattdessen die Controls-Eigenschaft eines Hostelements, um alle verwalteten Steuerelemente (sowohl Hoststeuerelemente als auch Windows Forms-Steuerelemente) im Dokument oder Arbeitsblatt zu durchlaufen, und suchen Sie dann nach Elementen, die dem Typ des hoststeuerelements entsprechen, an dem Sie interessiert sind. Im folgenden Codebeispiel wird jedes Steuerelement in einem Word-Dokument untersucht und dann bestimmt, ob das Steuerelement ein Bookmarkist.

foreach (object targetControl in this.Controls)
{
    Microsoft.Office.Tools.Word.Bookmark bookMark =
        targetControl as Microsoft.Office.Tools.Word.Bookmark;

    if (bookMark != null)
    {
        // Do some work with the bookmark here.
    }
}

Weitere Informationen zur Controls-Eigenschaft von Hostelementen finden Sie unter Hinzufügen von Steuerelementen zu Office-Dokumenten zur Laufzeit.

Die Objektmodelle von Word und Excel enthalten Eigenschaften, die Auflistungen von systemeigenen Steuerelementen für Dokumente und Arbeitsblätter bereitstellen. Sie können mithilfe dieser Eigenschaften nicht auf verwaltete Steuerelemente zugreifen. Es ist z. B. nicht möglich, jedes Bookmark -Hoststeuerelement in einem Dokument mithilfe der Bookmarks -Eigenschaft einer Document - oder Bookmarks -Eigenschaft eines Documentaufzuzählen. Diese Eigenschaften beziehen nur die Bookmark -Steuerelemente im Dokument ein. Sie enthalten nicht die Bookmark -Hoststeuerelemente im Dokument.