Sdílet prostřednictvím


Postupy: Přidání ovládacích prvků obsahu do dokumentů aplikace Word

V projekty na úrovni dokumentu aplikace Word můžete ovládací prvky obsahu dokumentu do projektu v době návrhu nebo za běhu.V projektech aplikace Word můžete přidat ovládací prvky obsahu do libovolného dokumentu otevřeného v době běhu.

Platí pro: Informace v tomto tématu se vztahují na projekty na úrovni dokumentu i na úrovni aplikace ve Wordu 2013 a ve Wordu 2010. Další informace najdete v tématu Dostupné funkce podle aplikací systému Office a typů projektu.

Toto téma popisuje následující úlohy:

  • Přidání ovládacích prvků obsahu v době návrhu

  • Přidání ovládacích prvků obsahu v době běhu v úrovni dokumentů projektu

  • Přidání ovládacích prvků obsahu v době běhu v projektu na úrovni aplikace

Informace o ovládací prvky obsahu, Ovládací prvky obsahu.

Přidání ovládacích prvků obsahu v době návrhu

Přidání ovládacích prvků obsahu dokumentu v projektu na úrovni dokumentu v době návrhu několika způsoby:

  • Přidat ovládací prvek obsahu z Ovládací prvky aplikace Word kartě nástrojů.

  • Přidání ovládacího prvku obsahu do dokumentu stejným způsobem by přidat nativní ovládací prvek obsahu v aplikaci Word.

  • Přetáhněte ovládací prvek obsahu dokumentu z Zdroje dat okna.To je užitečné, když chcete svázat ovládací prvek dat při vytvoření ovládacího prvku.Další informace naleznete v tématu Postupy: Naplnění dokumentů daty z objektů a Postupy: Naplnění dokumentů daty z databáze.

[!POZNÁMKA]

Na vašem počítači se můžou v následujících pokynech zobrazovat jiné názvy nebo umístění některých prvků uživatelského rozhraní Visual Studia. Tyto prvky jsou určeny edicí sady Visual Studio a použitým nastavením. Další informace najdete v tématu Přizpůsobení nastavení pro vývoj v sadě Visual Studio.

Pomocí panelu nástrojů přidejte ovládací prvek obsahu dokumentu

  1. V dokumentu, který je hostitelem v Visual Studio designer, umístěte kurzor, kam chcete přidat ovládací prvek obsahu nebo vyberte text, který chcete nahradit obsah ovládacího prvku.

  2. Otevřít nástrojů a klepněte Ovládací prvky aplikace Word kartu.

  3. Přidejte ovládací prvek jedním z následujících způsobů:

    • Poklepejte na ovládací prvek obsahu v nástrojů.

      nebo

    • Klepněte na ovládací prvek obsahu v nástrojů a stiskněte klávesu ENTER.

      nebo

    • Přetáhněte ovládací prvek obsahu z nástrojů v dokumentu.Ovládací prvek obsahu je přidán na aktuální výběr v dokumentu, nikoli při umístění ukazatele myši.

[!POZNÁMKA]

Nelze přidat GroupContentControl pomocí nástrojů.Můžete přidat pouze GroupContentControl v aplikaci Word nebo v době běhu.

[!POZNÁMKA]

Visual Studio neposkytuje políčko obsah ovládacího prvku v panelu nástrojů pro Word 2013 a projekty aplikace Word 2010.Ovládací prvek obsahu políčko Přidat do dokumentu, musíte vytvořit ContentControl objekt programově.Další informace naleznete v tématu Ovládací prvky obsahu.

Chcete-li přidat ovládací prvek obsahu do dokumentu aplikace Word

  1. V dokumentu, který je hostitelem v Visual Studio designer, umístěte kurzor, kam chcete přidat ovládací prvek obsahu nebo vyberte text, který chcete nahradit obsah ovládacího prvku.

  2. Na pásu karet klepněte Developer kartu.

    [!POZNÁMKA]

    Pokud Developer kartě není viditelná, musíte nejprve zobrazit.Další informace naleznete v tématu Postupy: Zobrazení karty Vývojář na pásu karet.

  3. V prvky skupinu, klepněte na ikonu ovládacího prvku obsahu, který chcete přidat.

Přidání ovládacích prvků obsahu v době běhu v úrovni dokumentů projektu

Můžete přidat ovládací prvky obsahu programově do dokumentu za běhu pomocí metody Controls vlastnost ThisDocument tříd v projektu.Každá metoda má tři přetížení, které můžete přidat ovládací prvek obsahu následujícími způsoby:

  • Přidání ovládacího prvku na aktuální výběr.

  • Přidejte ovládací prvek na zadaný rozsah.

  • Přidáte ovládací prvek, který je založen na nativní obsahu ovládacího prvku v dokumentu.

Při zavření dokumentu dynamicky vytvořené ovládací prvky nejsou trvalé obsah v dokumentu.Nativní ovládací prvek obsahu však zůstane v dokumentu.Chcete-li znovu vytvořit ovládací prvek obsahu, který je založen na nativní ovládací prvek obsahu při příštím otevření dokumentu.Další informace naleznete v tématu Přidání ovládacích prvků do dokumentů Office za běhu.

[!POZNÁMKA]

Ovládací prvek obsahu políčko Přidat do dokumentu v aplikaci Word 2010 projektu, je nutné vytvořit ContentControl objektu.Další informace naleznete v tématu Ovládací prvky obsahu.

Přidat ovládací prvek obsahu na aktuální výběr.

  • Použití ControlCollection metodu, která má název Add<třídy ovládacího prvku> (kde třídy ovládacího prvku je název třídy ovládacího prvku obsahu, který chcete přidat jako AddRichTextContentControl), a která má jeden parametr název nového ovládacího prvku.

    Následující příklad kódu používá ControlCollection.AddRichTextContentControl(String) metodu k přidání nového RichTextContentControl na začátek dokumentu.Tento kód spustit, přidejte kód, který ThisDocument třídy v projektu a volání AddRichTextControlAtSelection metody z ThisDocument_Startup obslužnou rutinu události.

    Dim richTextControl1 As Microsoft.Office.Tools.Word.RichTextContentControl
    
    Private Sub AddRichTextControlAtSelection()
        Me.Paragraphs(1).Range.InsertParagraphBefore()
        Me.Paragraphs(1).Range.Select()
        richTextControl1 = Me.Controls.AddRichTextContentControl("richTextControl1")
        richTextControl1.PlaceholderText = "Enter your first name" 
    End Sub
    
    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";
    }
    

Přidat ovládací prvek obsahu na zadaný rozsah.

  • Použití ControlCollection metodu, která má název Add<třídy ovládacího prvku> (kde třídy ovládacího prvku je název třídy ovládacího prvku obsahu, kterou chcete přidat jako AddRichTextContentControl), a který má Range parametr.

    Následující příklad kódu používá ControlCollection.AddRichTextContentControl(Range, String) metodu k přidání nového RichTextContentControl na začátek dokumentu.Tento kód spustit, přidejte kód, který ThisDocument třídy v projektu a volání AddRichTextControlAtRange metody z ThisDocument_Startup obslužnou rutinu události.

    Dim richTextControl2 As Microsoft.Office.Tools.Word.RichTextContentControl
    
    Private Sub AddRichTextControlAtRange()
        Me.Paragraphs(1).Range.InsertParagraphBefore()
        richTextControl2 = Me.Controls.AddRichTextContentControl(Me.Paragraphs(1).Range, _
            "richTextControl2")
        richTextControl2.PlaceholderText = "Enter your first name" 
    End Sub
    
    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";
    }
    

Chcete-li přidat ovládací prvek obsahu je založen na nativní ovládací prvek obsahu

  • Použití ControlCollection metodu, která má název Add<třídy ovládacího prvku> (kde třídy ovládacího prvku je název třídy ovládacího prvku obsahu, kterou chcete přidat jako AddRichTextContentControl), a který má Microsoft.Office.Interop.Word.ContentControl parametr.

    Následující příklad kódu používá ControlCollection.AddRichTextContentControl(ContentControl, String) metody pro vytvoření nového RichTextContentControl pro každý ovládací prvek, který je v dokumentu RTF nativní.Tento kód spustit, přidejte kód, který ThisDocument třídy v projektu a volání CreateRichTextControlsFromNativeControls metody z ThisDocument_Startup obslužnou rutinu události.

    Private richTextControls As New System.Collections.Generic.List _
            (Of Microsoft.Office.Tools.Word.RichTextContentControl)
    
    Private Sub CreateRichTextControlsFromNativeControls()
        If Me.ContentControls.Count <= 0 Then 
            Return 
        End If 
    
        Dim count As Integer = 0
        For Each nativeControl As Word.ContentControl In Me.ContentControls
            If nativeControl.Type = Word.WdContentControlType.wdContentControlRichText Then
                count += 1
                Dim tempControl As Microsoft.Office.Tools.Word.RichTextContentControl = _
                    Me.Controls.AddRichTextContentControl(nativeControl, _
                    "VSTORichTextContentControl" + count.ToString())
                richTextControls.Add(tempControl)
            End If 
        Next nativeControl
    End Sub
    
    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);
            }
        }
    }
    

Přidání ovládacích prvků obsahu v době běhu v projektu na úrovni aplikace

Můžete přidat ovládací prvky obsahu programově libovolného otevřeného dokumentu v době běhu pomocí doplněk aplikační úrovni.Postup generování Document hostitel položky založené na otevřený dokument a potom pomocí metody Controls vlastnosti této položky hostitel.Každá metoda má tři přetížení, které můžete přidat ovládací prvek obsahu následujícími způsoby:

  • Přidání ovládacího prvku na aktuální výběr.

  • Přidejte ovládací prvek na zadaný rozsah.

  • Přidáte ovládací prvek, který je založen na nativní obsahu ovládacího prvku v dokumentu.

Při zavření dokumentu dynamicky vytvořené ovládací prvky nejsou trvalé obsah v dokumentu.Nativní ovládací prvek obsahu však zůstane v dokumentu.Chcete-li znovu vytvořit ovládací prvek obsahu, který je založen na nativní ovládací prvek obsahu při příštím otevření dokumentu.Další informace naleznete v tématu Uchování dynamických ovládacích prvků v dokumentech systému Office.

Další informace o generování hostitel položky projekty na úrovni aplikace, viz Rozšíření dokumentů aplikace Word a sešitů aplikace Excel v doplňcích na úrovni aplikace za běhu.

[!POZNÁMKA]

Přidat ovládací prvek obsahu zaškrtávacího políčka v dokumentu Word 2013 nebo Word 2010 projektu, musíte vytvořit ContentControl objektu.Další informace naleznete v tématu Ovládací prvky obsahu.

Přidat ovládací prvek obsahu na aktuální výběr.

  • Použití ControlCollection metodu, která má název Add<třídy ovládacího prvku> (kde třídy ovládacího prvku je název třídy ovládacího prvku obsahu, který chcete přidat jako AddRichTextContentControl), a která má jeden parametr název nového ovládacího prvku.

    Následující příklad kódu používá ControlCollection.AddRichTextContentControl(String) metodu k přidání nového RichTextContentControl na začátku aktivního dokumentu.Tento kód spustit, přidejte kód, který ThisAddIn třídy v projektu a volání AddRichTextControlAtSelection metody z ThisAddIn_Startup obslužnou rutinu události.

    Dim richTextControl1 As Microsoft.Office.Tools.Word.RichTextContentControl
    
    Private Sub AddRichTextControlAtSelection()
        Dim currentDocument As Word.Document = Me.Application.ActiveDocument
        currentDocument.Paragraphs(1).Range.InsertParagraphBefore()
        currentDocument.Paragraphs(1).Range.Select()
    
        Dim extendedDocument As Document = Globals.Factory.GetVstoObject(currentDocument)
    
    
        richTextControl1 = extendedDocument.Controls.AddRichTextContentControl("richTextControl1")
        richTextControl1.PlaceholderText = "Enter your first name" 
    End Sub
    
    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";
    }
    

Přidat ovládací prvek obsahu na zadaný rozsah.

  • Použití ControlCollection metodu, která má název Add<třídy ovládacího prvku> (kde třídy ovládacího prvku je název třídy ovládacího prvku obsahu, kterou chcete přidat jako AddRichTextContentControl), a který má Range parametr.

    Následující příklad kódu používá ControlCollection.AddRichTextContentControl(Range, String) metodu k přidání nového RichTextContentControl na začátku aktivního dokumentu.Tento kód spustit, přidejte kód, který ThisAddIn třídy v projektu a volání AddRichTextControlAtRange metody z ThisAddIn_Startup obslužnou rutinu události.

    Dim richTextControl2 As Microsoft.Office.Tools.Word.RichTextContentControl
    
    Private Sub AddRichTextControlAtRange()
        Dim currentDocument As Word.Document = Me.Application.ActiveDocument
        currentDocument.Paragraphs(1).Range.InsertParagraphBefore()
    
        Dim extendedDocument As Document = Globals.Factory.GetVstoObject(currentDocument)
    
        richTextControl2 = extendedDocument.Controls.AddRichTextContentControl( _
            extendedDocument.Paragraphs(1).Range, "richTextControl2")
        richTextControl2.PlaceholderText = "Enter your first name" 
    End Sub
    
    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";
    }
    

Chcete-li přidat ovládací prvek obsahu je založen na nativní ovládací prvek obsahu

  • Použití ControlCollection metodu, která má název Add<třídy ovládacího prvku> (kde třídy ovládacího prvku je název třídy ovládacího prvku obsahu, kterou chcete přidat jako AddRichTextContentControl), a který má Microsoft.Office.Interop.Word.ContentControl parametr.

    Následující příklad kódu používá ControlCollection.AddRichTextContentControl(ContentControl, String) metody pro vytvoření nového RichTextContentControl pro každý ovládací prvek, který je v dokumentu po otevření dokumentu RTF nativní.Tento kód spustit, přidejte kód, který ThisAddIn tříd v projektu.

    Private richTextControls As New System.Collections.Generic.List _
        (Of Microsoft.Office.Tools.Word.RichTextContentControl)
    
    Private Sub Application_DocumentOpen(ByVal Doc As Microsoft.Office.Interop.Word.Document) _
        Handles Application.DocumentOpen
    
        If Doc.ContentControls.Count > 0 Then 
    
            Dim extendedDocument As Document = Globals.Factory.GetVstoObject(Doc)
    
            Dim count As Integer = 0
            For Each nativeControl As Word.ContentControl In Doc.ContentControls
                If nativeControl.Type = Word.WdContentControlType.wdContentControlRichText Then
                    count += 1
                    Dim tempControl As Microsoft.Office.Tools.Word.RichTextContentControl = _
                        extendedDocument.Controls.AddRichTextContentControl(nativeControl, _
                        "VSTORichTextContentControl" + count.ToString())
                    richTextControls.Add(tempControl)
                End If 
            Next nativeControl
        End If 
    End Sub
    
    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);
                }
            }
        }
    }
    

    Pro C# musíte také připojit Application_DocumentOpen obslužnou rutinu události DocumentOpen události.

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

Viz také

Koncepty

Automatizace v aplikaci Word s použitím rozšířených objektů

Přehled hostitelských položek a hostitelských ovládacích prvků

Přidání ovládacích prvků do dokumentů Office za běhu

Programová omezení hostitelských položek a hostitelských ovládacích prvků

Další zdroje

Programování doplňků na úrovni aplikace

Programování přizpůsobení na úrovni dokumentu