Udostępnij za pośrednictwem


Porady: dodawanie formantów zawartości do dokumentów programu Word

W poziomie dokumentu programu Word projektów można dodać formanty zawartości w dokumencie w projekcie, w czasie projektowania lub w czasie wykonywania.W projektach programu Word poziom aplikacji można dodać formanty zawartości do otwartego dokumentu, w czasie wykonywania.

Zastosowanie: Informacje przedstawione w tym temacie mają zastosowanie do projektów na poziomie dokumentu i aplikacji obsługiwanych w programach Word 2013 i Word 2010. Aby uzyskać więcej informacji, zobacz Funkcje dostępne w aplikacjach pakietu Office i typ projektu.

W tym temacie opisano następujące zadania:

  • Dodawanie formantów zawartości w czasie projektowania

  • Dodawanie formantów zawartości w czasie wykonania w projekt na poziomie dokumentu

  • Dodawanie formantów zawartości w czasie wykonywania w projekcie na poziomie aplikacji

Informacje dla formantów zawartości, zobacz Formanty zawartości.

Dodawanie formantów zawartości w czasie projektowania

Istnieje kilka sposobów dodawania formantów zawartości do dokumentu w projekcie na poziomie dokumentu w czasie projektowania:

[!UWAGA]

Na komputerze w poniższych instrukcjach mogą być wyświetlane inne nazwy i lokalizacje niektórych elementów interfejsu użytkownika programu Visual Studio. Te elementy są określane przez numer wersji Visual Studio oraz twoje ustawienia. Aby uzyskać więcej informacji, zobacz Dostosowywanie ustawień środowiska deweloperskiego w Visual Studio.

Aby dodać formant zawartości do dokumentu za pomocą przybornika

  1. W dokumencie, który znajduje się w Visual Studio designer, umieść kursor w którym chcesz dodać formant zawartości, lub zaznacz tekst, który ma zastąpić formant zawartości.

  2. Otwórz Przybornik i kliknij przycisk Kontroli słowo kartę.

  3. Dodaj formant, jeden z następujących sposobów:

    • Kliknij dwukrotnie formant zawartości w Przybornik.

      lub

    • Kliknij formant zawartości w Przybornik , a następnie naciśnij klawisz ENTER.

      lub

    • Przeciągnij formant zawartości z Przybornik do dokumentu.Formant zawartości jest dodawany bieżącego zaznaczenia w dokumencie, a nie lokalizacji kursora myszy.

[!UWAGA]

Nie można dodać GroupContentControl za pomocą Przybornik.Można dodawać tylko GroupContentControl w programie Word lub w czasie wykonywania.

[!UWAGA]

Visual Studio nie zapewnia formant zawartości pola wyboru w przyborniku na Word 2013 i projektów w programie Word 2010.Aby dodać formant zawartości pola wyboru do dokumentu, należy utworzyć ContentControl obiekt programowo.Aby uzyskać więcej informacji, zobacz Formanty zawartości.

Aby dodać formant zawartości do dokumentu w programie Word

  1. W dokumencie, który znajduje się w Visual Studio designer, umieść kursor w którym chcesz dodać formant zawartości, lub zaznacz tekst, który ma zastąpić formant zawartości.

  2. Kliknij na Wstążce, autora kartę.

    [!UWAGA]

    Jeśli autora karta nie jest widoczna, najpierw należy wyświetlić.Aby uzyskać więcej informacji, zobacz Porady: pokazywanie karty dewelopera na wstążce.

  3. W kontroli grupy, kliknij ikonę formant zawartości, który chcesz dodać.

Dodawanie formantów zawartości w czasie wykonywania projektu poziomie dokumentu

Można dodać formanty zawartości programowo do dokumentu w czasie wykonywania przy użyciu metody Controls właściwość ThisDocument klasy do projektu.Każda metoda ma trzy overloads, które można użyć, aby dodać formant zawartości w następujący sposób:

  • Dodawanie formantu w bieżącym zaznaczeniem.

  • Dodawanie formantu w określonym zakresie.

  • Dodaj formant, który jest oparty na macierzystego formantu zawartości w dokumencie.

Tworzone dynamicznie treści, które formanty nie są zachowywane w dokumencie, gdy dokument jest zamykany.Jednak macierzystego formantu zawartości pozostanie w dokumencie.Można ponownie utworzyć formant zawartości, który jest oparty na macierzystego formantu zawartości przy następnym otwarciu dokumentu.Aby uzyskać więcej informacji, zobacz Dodawanie formantów do dokumentów pakietu Office w czasie wykonywania.

[!UWAGA]

Aby dodać formant zawartości pola wyboru do dokumentu w projekcie programu Word 2010, należy utworzyć ContentControl obiektu.Aby uzyskać więcej informacji, zobacz Formanty zawartości.

Aby dodać formant zawartości w bieżącym zaznaczeniem

  • Użycie ControlCollection metodę o nazwie Add<Klasa sterowania> (gdzie Klasa sterowania jest nazwą klasy formant zawartości, który chcesz dodać, takich jak AddRichTextContentControl), i że ma jeden parametr dla nazwy nowego formantu.

    Następujący kod w przykładzie wykorzystano ControlCollection.AddRichTextContentControl(String) metoda, aby dodać nowy RichTextContentControl do początku dokumentu.Aby uruchomić ten kod, należy dodać kod do ThisDocument klasy w projekcie, a wywołanie AddRichTextControlAtSelection metoda z ThisDocument_Startup programu obsługi zdarzeń.

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

Aby dodać formant zawartości w określonym zakresie

  • Użycie ControlCollection metodę o nazwie Add<Klasa sterowania> (gdzie Klasa sterowania jest nazwą klasy formantu zawartości, który chcesz dodać, takich jak AddRichTextContentControl), i że ma Range parametru.

    Następujący kod w przykładzie wykorzystano ControlCollection.AddRichTextContentControl(Range, String) metoda, aby dodać nowy RichTextContentControl do początku dokumentu.Aby uruchomić ten kod, należy dodać kod do ThisDocument klasy w projekcie, a wywołanie AddRichTextControlAtRange metoda z ThisDocument_Startup programu obsługi zdarzeń.

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

Aby dodać formant zawartości, który jest oparty na macierzystego formantu zawartości

  • Użycie ControlCollection metodę o nazwie Add<Klasa sterowania> (gdzie Klasa sterowania jest nazwą klasy formantu zawartości, który chcesz dodać, takich jak AddRichTextContentControl), i że ma Microsoft.Office.Interop.Word.ContentControl parametru.

    Następujący kod w przykładzie wykorzystano ControlCollection.AddRichTextContentControl(ContentControl, String) metoda, aby utworzyć nową RichTextContentControl dla każdego formantu macierzystego tekstu sformatowanego, który znajduje się w dokumencie.Aby uruchomić ten kod, należy dodać kod do ThisDocument klasy w projekcie, a wywołanie CreateRichTextControlsFromNativeControls metoda z ThisDocument_Startup programu obsługi zdarzeń.

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

Dodawanie formantów zawartości w czasie wykonywania w projekcie na poziomie aplikacji

Można dodać formanty zawartości programowo do otwartego dokumentu, w czasie wykonywania przy użyciu dodatku poziomie aplikacji.Aby to zrobić, należy wygenerować Document host element, który jest oparty na otwartym dokumencie, a następnie użyj metody Controls właściwości tego elementu hosta.Każda metoda ma trzy overloads, które można użyć, aby dodać formant zawartości w następujący sposób:

  • Dodawanie formantu w bieżącym zaznaczeniem.

  • Dodawanie formantu w określonym zakresie.

  • Dodaj formant, który jest oparty na macierzystego formantu zawartości w dokumencie.

Tworzone dynamicznie treści, które formanty nie są zachowywane w dokumencie, gdy dokument jest zamykany.Jednak macierzystego formantu zawartości pozostanie w dokumencie.Można ponownie utworzyć formant zawartości, który jest oparty na macierzystego formantu zawartości przy następnym otwarciu dokumentu.Aby uzyskać więcej informacji, zobacz Przechowywanie formantów dynamicznych w dokumentach pakietu Office.

Aby uzyskać więcej informacji na temat generowania elementów hosta w poziomie aplikacji, zobacz Rozszerzanie dokumentów programu Word i skoroszytów w programie Excel w czasie wykonywania w dodatkach na poziomie aplikacji.

[!UWAGA]

Aby dodać formant zawartości pola wyboru do dokumentu w Word 2013 lub projektu programu Word 2010, należy utworzyć ContentControl obiektu.Aby uzyskać więcej informacji, zobacz Formanty zawartości.

Aby dodać formant zawartości w bieżącym zaznaczeniem

  • Użycie ControlCollection metodę o nazwie Add<Klasa sterowania> (gdzie Klasa sterowania jest nazwą klasy formant zawartości, który chcesz dodać, takich jak AddRichTextContentControl), i że ma jeden parametr dla nazwy nowego formantu.

    Następujący kod w przykładzie wykorzystano ControlCollection.AddRichTextContentControl(String) metoda, aby dodać nowy RichTextContentControl na początku aktywnego dokumentu.Aby uruchomić ten kod, należy dodać kod do ThisAddIn klasy w projekcie, a wywołanie AddRichTextControlAtSelection metoda z ThisAddIn_Startup programu obsługi zdarzeń.

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

Aby dodać formant zawartości w określonym zakresie

  • Użycie ControlCollection metodę o nazwie Add<Klasa sterowania> (gdzie Klasa sterowania jest nazwą klasy formantu zawartości, który chcesz dodać, takich jak AddRichTextContentControl), i że ma Range parametru.

    Następujący kod w przykładzie wykorzystano ControlCollection.AddRichTextContentControl(Range, String) metoda, aby dodać nowy RichTextContentControl na początku aktywnego dokumentu.Aby uruchomić ten kod, należy dodać kod do ThisAddIn klasy w projekcie, a wywołanie AddRichTextControlAtRange metoda z ThisAddIn_Startup programu obsługi zdarzeń.

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

Aby dodać formant zawartości, który jest oparty na macierzystego formantu zawartości

  • Użycie ControlCollection metodę o nazwie Add<Klasa sterowania> (gdzie Klasa sterowania jest nazwą klasy formantu zawartości, który chcesz dodać, takich jak AddRichTextContentControl), i że ma Microsoft.Office.Interop.Word.ContentControl parametru.

    Następujący kod w przykładzie wykorzystano ControlCollection.AddRichTextContentControl(ContentControl, String) metoda, aby utworzyć nową RichTextContentControl dla każdego formantu macierzystego tekstu sformatowanego, który znajduje się w dokumencie, po otwarciu dokumentu.Aby uruchomić ten kod, należy dodać kod do ThisAddIn klasy do 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);
                }
            }
        }
    }
    

    Język C#, należy również dołączyć Application_DocumentOpen obsługi zdarzeń do DocumentOpen zdarzenie.

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

Zobacz też

Koncepcje

Automatyzowanie programu Word za pomocą obiektów rozszerzonych

Przegląd obiektów hosta i formantów hosta

Dodawanie formantów do dokumentów pakietu Office w czasie wykonywania

Ograniczenia programowe elementów hosta i formantów hosta

Inne zasoby

Programowanie dodatków na poziomie aplikacji

Programowanie dostosowań na poziome dokumentu