Freigeben über


Hinzufügen von Inhaltssteuerelementen zu Word-Dokumenten

In Word-Projekten auf Dokumentebene können Sie dem Dokument in Ihrem Projekt zur Entwurfszeit oder Laufzeit Inhaltssteuerelemente hinzufügen. In Word-VSTO-Add-In-Projekten können Sie einem beliebigen geöffneten Dokument zur Laufzeit Inhaltssteuerelemente hinzufügen.

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

In diesem Thema werden die folgenden Aufgaben beschrieben:

Inhaltssteuerelemente zur Entwurfszeit hinzufügen

Es gibt mehrere Möglichkeiten zum Hinzufügen von Inhaltssteuerelementen zum Dokument in einem Projekt auf Dokumentebene zur Entwurfszeit:

  • Fügen Sie ein Inhaltssteuerelement von der Registerkarte Word-Steuerelemente der Toolboxhinzu.

  • Fügen Sie Ihrem Dokument ein Inhaltssteuerelement auf die gleiche Weise wie ein systemeigenes Inhaltssteuerelement in Word hinzu.

  • Ziehen Sie ein Inhaltssteuerelement aus dem Fenster Datenquellen in Ihr Dokument. Dies ist hilfreich, wenn Sie das Steuerelement während der Erstellung an Daten binden möchten. Weitere Informationen finden Sie unter How to: Populate documents with data from objects and How to: Populate documents with data from a database.

    Hinweis

    Auf Ihrem Computer werden möglicherweise andere Namen oder Speicherorte für die Benutzeroberflächenelemente von Visual Studio angezeigt als die in den folgenden Anweisungen aufgeführten. Diese Elemente sind von der jeweiligen Visual Studio-Version und den verwendeten Einstellungen abhängig. Weitere Informationen finden Sie unter Personalisieren der IDE.

So fügen Sie einem Dokument ein Inhaltssteuerelement mithilfe der Toolbox hinzu

  1. Platzieren Sie im Dokument, das im Visual Studio-Designer gehostet wird, den Cursor an der Stelle, an der Sie das Inhaltssteuerelement hinzufügen möchten, oder markieren Sie den Text, den das Inhaltssteuerelement ersetzen soll.

  2. Öffnen Sie die Toolbox , und klicken Sie auf die Registerkarte Word-Steuerelemente .

  3. Sie haben folgende Möglichkeiten, um das Steuerelement hinzuzufügen:

    • Doppelklicken Sie auf ein Inhaltssteuerelement in der Toolbox.

      oder

    • Klicken Sie in der Toolbox auf ein Inhaltssteuerelement, und drücken Sie dann die EINGABETASTE .

      oder

    • Ziehen Sie ein Inhaltssteuerelement aus der Toolbox in das Dokument. Das Inhaltssteuerelement wird an der aktuellen Auswahl im Dokument und nicht an der Position des Mauszeigers hinzugefügt.

Hinweis

GroupContentControl kann nicht über die Toolboxhinzugefügt werden. Sie können GroupContentControl nur in Word oder zur Laufzeit hinzufügen.

Hinweis

Visual Studio bietet in der Toolbox kein Kontrollkästchen-Inhaltssteuerelement. Um dem Dokument ein Kontrollkästchen-Inhaltssteuerelement hinzuzufügen, müssen Sie ein ContentControl -Objekt programmgesteuert erstellen. Weitere Informationen finden Sie unter Inhaltssteuerelemente.

So fügen Sie einem Dokument in Word ein Inhaltssteuerelement hinzu

  1. Platzieren Sie im Dokument, das im Visual Studio-Designer gehostet wird, den Cursor an der Stelle, an der Sie das Inhaltssteuerelement hinzufügen möchten, oder markieren Sie den Text, den das Inhaltssteuerelement ersetzen soll.

  2. Klicken Sie im Menüband auf die Registerkarte Entwickler .

    Hinweis

    Wenn die Registerkarte Entwickler nicht sichtbar ist, müssen Sie diese zuerst anzeigen. Weitere Informationen finden Sie unter How to: Show the Developer tab on the Ribbon.

  3. Klicken Sie in der Gruppe Steuerelemente auf das Symbol für das Inhaltssteuerelement, das Sie hinzufügen möchten.

Hinzufügen von Inhaltssteuerelementen zur Laufzeit in einem Projekt auf Dokumentebene

Sie können einem Dokument Inhaltssteuerelemente programmgesteuert zur Laufzeit hinzufügen, indem Sie Methoden der Controls -Eigenschaft der ThisDocument -Klasse im Projekt verwenden. Jede Methode verfügt über drei Überladungen, mit denen Sie auf folgende Weisen ein Inhaltssteuerelement hinzufügen können:

  • Fügen Sie ein Steuerelement an der aktuellen Auswahl hinzu.

  • Fügen Sie ein Steuerelement in einem angegebenen Bereich hinzu.

  • Fügen Sie ein Steuerelement hinzu, das auf einem systemeigenen Inhaltssteuerelement im Dokument basiert.

    Dynamisch erstellte Inhaltssteuerelemente werden nicht dauerhaft im Dokument gespeichert, wenn das Dokument geschlossen wird. Ein systemeigenes Inhaltssteuerelement bleibt jedoch im Dokument erhalten. Wenn das Dokument das nächste Mal geöffnet wird, können Sie ein Inhaltssteuerelement neu erstellen, das auf einem systemeigenen Inhaltssteuerelement basiert. Weitere Informationen finden Sie unter Hinzufügen von Steuerelementen zu Office-Dokumenten zur Laufzeit.

Hinweis

Um einem Dokument in einem Word 2010-Projekt ein Kontrollkästchen-Inhaltssteuerelement hinzuzufügen, müssen Sie ein ContentControl -Objekt erstellen. Weitere Informationen finden Sie unter Inhaltssteuerelemente.

So fügen Sie ein Steuerelement an der aktuellen Auswahl hinzu

  1. Verwenden Sie eine ControlCollection Methode mit der Namenssteuerelementklasse Add<(wobei die Steuerelementklasse> der Klassenname des Inhaltssteuerelements ist, das Sie hinzufügen möchten, zAddRichTextContentControl. B. ), und das einen einzelnen Parameter für den Namen des neuen Steuerelements enthält.

    Im folgenden Codebeispiel wird die AddRichTextContentControl -Methode verwendet, um am Anfang des Dokuments ein neues RichTextContentControl hinzuzufügen. Um diesen Code auszuführen, fügen Sie ihn der ThisDocument -Klasse in Ihrem Projekt hinzu und rufen die AddRichTextControlAtSelection -Methode aus dem ThisDocument_Startup -Ereignishandler auf.

    private Microsoft.Office.Tools.Word.RichTextContentControl richTextControl1;
    
    private void AddRichTextControlAtSelection()
    {
        this.Paragraphs[1].Range.InsertParagraphBefore();
        this.Paragraphs[1].Range.Select();
    
        richTextControl1 = this.Controls.AddRichTextContentControl("richTextControl1");
        richTextControl1.PlaceholderText = "Enter your first name";
    }
    

So fügen Sie ein Steuerelement in einem angegebenen Bereich hinzu

  1. Verwenden Sie eine ControlCollection Methode mit der Namenssteuerelementklasse> Add<(wobei die Steuerelementklasse der Name der Inhaltssteuerelementklasse ist, die Sie hinzufügen möchten, zAddRichTextContentControl. B. ), und das über einen Range Parameter verfügt.

    Im folgenden Codebeispiel wird die AddRichTextContentControl -Methode verwendet, um am Anfang des Dokuments ein neues RichTextContentControl hinzuzufügen. Um diesen Code auszuführen, fügen Sie ihn der ThisDocument -Klasse in Ihrem Projekt hinzu und rufen die AddRichTextControlAtRange -Methode aus dem ThisDocument_Startup -Ereignishandler auf.

    private Microsoft.Office.Tools.Word.RichTextContentControl richTextControl2;
    
    private void AddRichTextControlAtRange()
    {
        this.Paragraphs[1].Range.InsertParagraphBefore();
    
        richTextControl2 = this.Controls.AddRichTextContentControl(this.Paragraphs[1].Range,
            "richTextControl2");
        richTextControl2.PlaceholderText = "Enter your first name";
    }
    

So fügen Sie ein Steuerelement hinzu, das auf einem systemeigenen Inhaltssteuerelement basiert

  1. Verwenden Sie eine ControlCollection Methode mit der Namenssteuerelementklasse> Add<(wobei die Steuerelementklasse der Name der Inhaltssteuerelementklasse ist, die Sie hinzufügen möchten, zAddRichTextContentControl. B. ), und das über einen Microsoft.Office.Interop.Word.ContentControl Parameter verfügt.

    Im folgenden Codebeispiel wird die AddRichTextContentControl -Methode verwendet, um für jedes im Dokument enthaltene systemeigene Rich-Text-Steuerelement ein neues RichTextContentControl zu erstellen. Um diesen Code auszuführen, fügen Sie ihn der ThisDocument -Klasse in Ihrem Projekt hinzu und rufen die CreateRichTextControlsFromNativeControls -Methode aus dem ThisDocument_Startup -Ereignishandler auf.

    private System.Collections.Generic.List
        <Microsoft.Office.Tools.Word.RichTextContentControl> richTextControls;
    
    private void CreateRichTextControlsFromNativeControls()
    {
        if (this.ContentControls.Count <= 0)
            return;
    
        richTextControls = new System.Collections.Generic.List
            <Microsoft.Office.Tools.Word.RichTextContentControl>();
        int count = 0;
    
        foreach (Word.ContentControl nativeControl in this.ContentControls)
        {
            if (nativeControl.Type ==
                Microsoft.Office.Interop.Word.WdContentControlType.wdContentControlRichText)
            {
                count++;
                Microsoft.Office.Tools.Word.RichTextContentControl tempControl =
                    this.Controls.AddRichTextContentControl(nativeControl,
                    "VSTORichTextControl" + count.ToString());
                richTextControls.Add(tempControl);
            }
        }
    }
    

Hinzufügen von Inhaltssteuerelementen zur Laufzeit in einem VSTO-Add-In-Projekt

Sie können einem beliebigen geöffneten Dokument mithilfe eines VSTO-Add-Ins zur Laufzeit programmgesteuert Inhaltssteuerelemente hinzufügen. Zu diesem Zweck generieren Sie ein Document -Hostelement, das auf einem geöffneten Dokument basiert, und verwenden dann die Methoden der Controls -Eigenschaft dieses Hostelements. Jede Methode verfügt über drei Überladungen, mit denen Sie auf folgende Weisen ein Inhaltssteuerelement hinzufügen können:

  • Fügen Sie ein Steuerelement an der aktuellen Auswahl hinzu.

  • Fügen Sie ein Steuerelement in einem angegebenen Bereich hinzu.

  • Fügen Sie ein Steuerelement hinzu, das auf einem systemeigenen Inhaltssteuerelement im Dokument basiert.

    Dynamisch erstellte Inhaltssteuerelemente werden nicht dauerhaft im Dokument gespeichert, wenn das Dokument geschlossen wird. Ein systemeigenes Inhaltssteuerelement bleibt jedoch im Dokument erhalten. Wenn das Dokument das nächste Mal geöffnet wird, können Sie ein Inhaltssteuerelement neu erstellen, das auf einem systemeigenen Inhaltssteuerelement basiert. Weitere Informationen finden Sie unter Beibehalten dynamischer Steuerelemente in Office-Dokumenten.

    Weitere Informationen zum Generieren von Hostelementen in VSTO-Add-In-Projekten finden Sie unter Erweitern von Word-Dokumenten und Excel-Arbeitsmappen in VSTO-Add-Ins zur Laufzeit.

Hinweis

Um einem Dokument ein Kontrollkästchen-Inhaltssteuerelement hinzuzufügen, müssen Sie ein ContentControl -Objekt erstellen. Weitere Informationen finden Sie unter Inhaltssteuerelemente.

So fügen Sie ein Steuerelement an der aktuellen Auswahl hinzu

  1. Verwenden Sie eine ControlCollection Methode mit der Namenssteuerelementklasse Add<(wobei die Steuerelementklasse> der Klassenname des Inhaltssteuerelements ist, das Sie hinzufügen möchten, zAddRichTextContentControl. B. ), und das einen einzelnen Parameter für den Namen des neuen Steuerelements enthält.

    Im folgenden Codebeispiel wird die AddRichTextContentControl -Methode verwendet, um am Anfang des aktiven Dokuments ein neues RichTextContentControl hinzuzufügen. Um diesen Code auszuführen, fügen Sie ihn der ThisAddIn -Klasse in Ihrem Projekt hinzu und rufen die AddRichTextControlAtSelection -Methode aus dem ThisAddIn_Startup -Ereignishandler auf.

    private Microsoft.Office.Tools.Word.RichTextContentControl richTextControl1;
    
    private void AddRichTextControlAtSelection()
    {
        Word.Document currentDocument = this.Application.ActiveDocument;
        currentDocument.Paragraphs[1].Range.InsertParagraphBefore();
        currentDocument.Paragraphs[1].Range.Select();
    
        Document extendedDocument = Globals.Factory.GetVstoObject(currentDocument);
    
        richTextControl1 = extendedDocument.Controls.AddRichTextContentControl("richTextControl1");
        richTextControl1.PlaceholderText = "Enter your first name";
    }
    

So fügen Sie ein Steuerelement in einem angegebenen Bereich hinzu

  1. Verwenden Sie eine ControlCollection Methode mit der Namenssteuerelementklasse> Add<(wobei die Steuerelementklasse der Name der Inhaltssteuerelementklasse ist, die Sie hinzufügen möchten, zAddRichTextContentControl. B. ), und das über einen Range Parameter verfügt.

    Im folgenden Codebeispiel wird die AddRichTextContentControl -Methode verwendet, um am Anfang des aktiven Dokuments ein neues RichTextContentControl hinzuzufügen. Um diesen Code auszuführen, fügen Sie ihn der ThisAddIn -Klasse in Ihrem Projekt hinzu und rufen die AddRichTextControlAtRange -Methode aus dem ThisAddIn_Startup -Ereignishandler auf.

    private Microsoft.Office.Tools.Word.RichTextContentControl richTextControl2;
    
    private void AddRichTextControlAtRange()
    {
        Word.Document currentDocument = this.Application.ActiveDocument;
        currentDocument.Paragraphs[1].Range.InsertParagraphBefore();
    
        Document extendedDocument = Globals.Factory.GetVstoObject(currentDocument);
    
        richTextControl2 = extendedDocument.Controls.AddRichTextContentControl(
            currentDocument.Paragraphs[1].Range, "richTextControl2");
        richTextControl2.PlaceholderText = "Enter your first name";
    }
    

So fügen Sie ein Steuerelement hinzu, das auf einem systemeigenen Inhaltssteuerelement basiert

  1. Verwenden Sie eine ControlCollection Methode mit der Namenssteuerelementklasse> Add<(wobei die Steuerelementklasse der Name der Inhaltssteuerelementklasse ist, die Sie hinzufügen möchten, zAddRichTextContentControl. B. ), und das über einen Microsoft.Office.Interop.Word.ContentControl Parameter verfügt.

    Im folgenden Codebeispiel wird die AddRichTextContentControl -Methode verwendet, um für jedes in einem Dokument enthaltene systemeigene Rich-Text-Steuerelement ein neues RichTextContentControl zu erstellen, nachdem das Dokument geöffnet wurde. Um diesen Code auszuführen, fügen Sie ihn der ThisAddIn -Klasse im Projekt hinzu.

    private System.Collections.Generic.List
        <Microsoft.Office.Tools.Word.RichTextContentControl> richTextControls;
    
    private void Application_DocumentOpen(Microsoft.Office.Interop.Word.Document Doc)
    {
        if (Doc.ContentControls.Count > 0)
        {
            Document extendedDocument = Globals.Factory.GetVstoObject(Doc);
    
            richTextControls = new System.Collections.Generic.List
                <Microsoft.Office.Tools.Word.RichTextContentControl>();
            int count = 0;
    
            foreach (Word.ContentControl nativeControl in Doc.ContentControls)
            {
                if (nativeControl.Type ==
                    Microsoft.Office.Interop.Word.WdContentControlType.wdContentControlRichText)
                {
                    count++;
                    Microsoft.Office.Tools.Word.RichTextContentControl tempControl =
                        extendedDocument.Controls.AddRichTextContentControl(nativeControl,
                        "VSTORichTextControl" + count.ToString());
                    richTextControls.Add(tempControl);
                }
            }
        }
    }
    

    Bei C# müssen Sie auch den Application_DocumentOpen -Ereignishandler an das DocumentOpen -Ereignis anfügen.

    this.Application.DocumentOpen +=
        new Word.ApplicationEvents4_DocumentOpenEventHandler(Application_DocumentOpen);