Přidání ovládacích prvků obsahu do wordových dokumentů

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

Platí pro: Informace v tomto tématu platí pro projekty na úrovni dokumentu a projekty doplňků VSTO pro Word. Další informace naleznete v tématu Funkce dostupné aplikace Office lication a typu projektu.

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

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

Existuje několik způsobů, jak přidat ovládací prvky obsahu do dokumentu v projektu na úrovni dokumentu v době návrhu:

  • Přidejte ovládací prvek obsahu z karty Ovládací prvky aplikace Word na panelu nástrojů.

  • Přidejte do dokumentu ovládací prvek obsahu stejným způsobem jako nativní ovládací prvek obsahu ve Wordu.

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

    Poznámka:

    Váš počítač může v následujících pokynech zobrazovat odlišné názvy nebo umístění některých prvků uživatelského rozhraní sady Visual Studio. Tyto prvky jsou určeny edicí sady Visual Studio a použitým nastavením. Další informace naleznete v tématu Přizpůsobení integrovaného vývojového prostředí (IDE).

Přidání ovládacího prvku obsahu do dokumentu pomocí panelu nástrojů

  1. V dokumentu, který je hostovaný v návrháři sady Visual Studio, umístěte kurzor na místo, kam chcete přidat ovládací prvek obsahu, nebo vyberte text, který má ovládací prvek obsahu nahradit.

  2. Otevřete panel nástrojů a klikněte na kartu Ovládací prvky aplikace Word.

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

    • Poklikejte na ovládací prvek obsahu v sadě nástrojů.

      nebo

    • Klikněte na ovládací prvek obsahu v sadě nástrojů a stiskněte klávesu Enter .

      nebo

    • Přetáhněte ovládací prvek obsahu ze sady nástrojů do dokumentu. Ovládací prvek obsahu se přidá do aktuálního výběru v dokumentu, ne na umístění ukazatele myši.

Poznámka:

Pomocí panelu nástrojů nelze přidatGroupContentControl. Ve Wordu GroupContentControl můžete přidat jenom aplikaci Word nebo za běhu.

Poznámka:

Visual Studio neposkytuje ovládací prvek obsahu zaškrtávacího políčka v sadě nástrojů. Pokud chcete do dokumentu přidat ovládací prvek obsahu zaškrtávacího políčka, musíte objekt vytvořit ContentControl programově. Další informace naleznete v tématu Ovládací prvky obsahu.

Přidání ovládacího prvku obsahu do dokumentu ve Wordu

  1. V dokumentu, který je hostovaný v návrháři sady Visual Studio, umístěte kurzor na místo, kam chcete přidat ovládací prvek obsahu, nebo vyberte text, který má ovládací prvek obsahu nahradit.

  2. Na pásu karet klikněte na kartu Vývojář .

    Poznámka:

    Pokud karta Vývojář není viditelná, musíte ji nejdřív zobrazit. Další informace najdete v tématu Postupy: Zobrazení karty Vývojář na pásu karet.

  3. Ve skupině Ovládací prvky klikněte na ikonu ovládacího prvku obsahu, který chcete přidat.

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

Ovládací prvky obsahu můžete do dokumentu přidat programově pomocí metod Controls vlastnosti ThisDocument třídy v projektu. Každá metoda má tři přetížení, které můžete použít k přidání ovládacího prvku obsahu následujícími způsoby:

  • Přidejte ovládací prvek k aktuálnímu výběru.

  • Přidejte ovládací prvek do zadaného rozsahu.

  • Přidejte ovládací prvek založený na nativním ovládacím prvku obsahu v dokumentu.

    Dynamicky vytvořené ovládací prvky obsahu se v dokumentu při zavření dokumentu neuchovávají. Nativní ovládací prvek obsahu však zůstane v dokumentu. Ovládací prvek obsahu, který je založený na nativním ovládacím prvku obsahu, můžete znovu vytvořit 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:

Pokud chcete do dokumentu v projektu Wordu 2010 přidat ovládací prvek obsahu zaškrtávacího políčka, musíte vytvořit ContentControl objekt. Další informace naleznete v tématu Ovládací prvky obsahu.

Přidání ovládacího prvku obsahu k aktuálnímu výběru

  1. Použijte metoduControlCollection, která má třídu> řízení názvů<Add (kde třída ovládacího prvku je název třídy třídy obsahu, který chcete přidat, například AddRichTextContentControl) a který má jeden parametr pro název nového ovládacího prvku.

    Následující příklad kódu používá metodu AddRichTextContentControl k přidání nového RichTextContentControl na začátek dokumentu. Pokud chcete tento kód spustit, přidejte kód do ThisDocument třídy v projektu a volejte metodu AddRichTextControlAtSelection z obslužné rutiny ThisDocument_Startup události.

    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řidání ovládacího prvku obsahu do zadaného rozsahu

  1. Použijte metoduControlCollection, která má třídu> ovládacích prvků názvů<Add (kde třída ovládacího prvku je název třídy ovládacího prvku obsahu, kterou chcete přidat, například AddRichTextContentControl) a která má Range parametr.

    Následující příklad kódu používá metodu AddRichTextContentControl k přidání nového RichTextContentControl na začátek dokumentu. Pokud chcete tento kód spustit, přidejte kód do ThisDocument třídy v projektu a volejte metodu AddRichTextControlAtRange z obslužné rutiny ThisDocument_Startup události.

    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";
    }
    

Přidání ovládacího prvku obsahu založeného na nativním ovládacím prvku obsahu

  1. Použijte metoduControlCollection, která má třídu> ovládacích prvků názvů<Add (kde třída ovládacího prvku je název třídy ovládacího prvku obsahu, kterou chcete přidat, například AddRichTextContentControl) a která má Microsoft.Office.Interop.Word.ContentControl parametr.

    Následující příklad kódu používá metodu AddRichTextContentControl k vytvoření nové RichTextContentControl pro každý nativní ovládací prvek RTF, který je v dokumentu. Pokud chcete tento kód spustit, přidejte kód do ThisDocument třídy v projektu a volejte metodu CreateRichTextControlsFromNativeControls z obslužné rutiny ThisDocument_Startup události.

    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 za běhu v projektu doplňku VSTO

Ovládací prvky obsahu můžete programově přidat do libovolného otevřeného dokumentu za běhu pomocí doplňku VSTO. Uděláte to tak, že vygenerujete Document položku hostitele založenou na otevřeném dokumentu a pak použijete metody Controls vlastnosti této položky hostitele. Každá metoda má tři přetížení, které můžete použít k přidání ovládacího prvku obsahu následujícími způsoby:

  • Přidejte ovládací prvek k aktuálnímu výběru.

  • Přidejte ovládací prvek do zadaného rozsahu.

  • Přidejte ovládací prvek založený na nativním ovládacím prvku obsahu v dokumentu.

    Dynamicky vytvořené ovládací prvky obsahu se v dokumentu při zavření dokumentu neuchovávají. Nativní ovládací prvek obsahu však zůstane v dokumentu. Ovládací prvek obsahu, který je založený na nativním ovládacím prvku obsahu, můžete znovu vytvořit při příštím otevření dokumentu. Další informace naleznete v tématu Zachování dynamických ovládacích prvků v dokumentech Office.

    Další informace o generování hostitelských položek v projektech doplňků VSTO naleznete v tématu Rozšíření wordových dokumentů a excelových sešitů v doplňkech VSTO za běhu.

Poznámka:

Pokud chcete do dokumentu přidat ovládací prvek obsahu zaškrtávacího políčka, musíte vytvořit ContentControl objekt. Další informace naleznete v tématu Ovládací prvky obsahu.

Přidání ovládacího prvku obsahu k aktuálnímu výběru

  1. Použijte metoduControlCollection, která má třídu> řízení názvů<Add (kde třída ovládacího prvku je název třídy třídy obsahu, který chcete přidat, například AddRichTextContentControl) a který má jeden parametr pro název nového ovládacího prvku.

    Následující příklad kódu používá metodu AddRichTextContentControl k přidání nového RichTextContentControl na začátek aktivního dokumentu. Pokud chcete tento kód spustit, přidejte kód do ThisAddIn třídy v projektu a volejte metodu AddRichTextControlAtSelection z obslužné rutiny ThisAddIn_Startup události.

    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řidání ovládacího prvku obsahu do zadaného rozsahu

  1. Použijte metoduControlCollection, která má třídu> ovládacích prvků názvů<Add (kde třída ovládacího prvku je název třídy ovládacího prvku obsahu, kterou chcete přidat, například AddRichTextContentControl) a která má Range parametr.

    Následující příklad kódu používá metodu AddRichTextContentControl k přidání nového RichTextContentControl na začátek aktivního dokumentu. Pokud chcete tento kód spustit, přidejte kód do ThisAddIn třídy v projektu a volejte metodu AddRichTextControlAtRange z obslužné rutiny ThisAddIn_Startup události.

    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";
    }
    

Přidání ovládacího prvku obsahu založeného na nativním ovládacím prvku obsahu

  1. Použijte metoduControlCollection, která má třídu> ovládacích prvků názvů<Add (kde třída ovládacího prvku je název třídy ovládacího prvku obsahu, kterou chcete přidat, například AddRichTextContentControl) a která má Microsoft.Office.Interop.Word.ContentControl parametr.

    Následující příklad kódu používá metodu AddRichTextContentControl k vytvoření nové RichTextContentControl pro každý nativní ovládací prvek RTF, který je v dokumentu po otevření dokumentu. Pokud chcete tento kód spustit, přidejte kód do ThisAddIn třídy v projektu.

    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 jazyk C# musíte k události připojit také obslužnou Application_DocumentOpen rutinu DocumentOpen události.

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