Dodawanie kontrolek zawartości do dokumentów programu Word

W projektach programu Word na poziomie dokumentu można dodawać kontrolki zawartości do dokumentu w projekcie w czasie projektowania lub w czasie wykonywania. W projektach dodatków programu Word VSTO można dodawać kontrolki zawartości do dowolnego otwartego dokumentu w czasie wykonywania.

Dotyczy: informacje w tym temacie dotyczą projektów na poziomie dokumentu i projektów dodatków VSTO dla programu Word. Aby uzyskać więcej informacji, zobacz Funkcje dostępne przez aplikacja pakietu Office lication i typ projektu.

W tym temacie opisano następujące zadania:

Dodawanie kontrolek zawartości w czasie projektowania

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

  • Dodaj kontrolkę zawartości na karcie Kontrolki programu Word przybornika.

  • Dodaj kontrolkę zawartości do dokumentu w taki sam sposób, jak dodano natywną kontrolkę zawartości w programie Word.

  • Przeciągnij kontrolkę zawartości do dokumentu z okna Źródła danych. Jest to przydatne, gdy chcesz powiązać kontrolkę z danymi podczas tworzenia kontrolki. Aby uzyskać więcej informacji, zobacz Instrukcje: wypełnianie dokumentów danymi z obiektów i Instrukcje: wypełnianie dokumentów danymi z bazy danych.

    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 Personalizowanie środowiska IDE.

Aby dodać kontrolkę zawartości do dokumentu przy użyciu przybornika

  1. W dokumencie hostowanym w projektancie programu Visual Studio umieść kursor, w którym chcesz dodać kontrolkę zawartości, lub wybierz tekst, który ma zastąpić kontrolka zawartości.

  2. Otwórz przybornik i kliknij kartę Kontrolki programu Word.

  3. Dodaj kontrolkę na jeden z następujących sposobów:

    • Kliknij dwukrotnie kontrolkę zawartości w przyborniku.

      lub

    • Kliknij kontrolkę zawartości w przyborniku, a następnie naciśnij klawisz Enter.

      lub

    • Przeciągnij kontrolkę zawartości z przybornika do dokumentu. Kontrolka zawartości jest dodawana do bieżącego zaznaczenia w dokumencie, a nie w lokalizacji wskaźnika myszy.

Uwaga

Nie można dodać GroupContentControl elementu przy użyciu przybornika. Można dodać tylko element GroupContentControl w programie Word lub w czasie wykonywania.

Uwaga

Program Visual Studio nie udostępnia kontrolki zawartości pola wyboru w przyborniku. Aby dodać kontrolkę zawartości pola wyboru do dokumentu, należy programowo utworzyć ContentControl obiekt. Aby uzyskać więcej informacji, zobacz Kontrolki zawartości.

Aby dodać kontrolkę zawartości do dokumentu w programie Word

  1. W dokumencie hostowanym w projektancie programu Visual Studio umieść kursor, w którym chcesz dodać kontrolkę zawartości, lub wybierz tekst, który ma zastąpić kontrolka zawartości.

  2. Na wstążce kliknij kartę Deweloper .

    Uwaga

    Jeśli karta Deweloper nie jest widoczna, musisz go najpierw wyświetlić. Aby uzyskać więcej informacji, zobacz Instrukcje: pokazywanie karty Deweloper na wstążce.

  3. W grupie Kontrolki kliknij ikonę kontrolki zawartości, którą chcesz dodać.

Dodawanie kontrolek zawartości w czasie wykonywania w projekcie na poziomie dokumentu

Kontrolki zawartości można dodawać programowo do dokumentu w czasie wykonywania przy użyciu metod Controls właściwości ThisDocument klasy w projekcie. Każda metoda ma trzy przeciążenia, których można użyć do dodania kontrolki zawartości w następujący sposób:

  • Dodaj kontrolkę w bieżącym zaznaczeniu.

  • Dodaj kontrolkę w określonym zakresie.

  • Dodaj kontrolkę opartą na natywnej kontrolce zawartości w dokumencie.

    Dynamiczne kontrolki zawartości nie są utrwalane w dokumencie po zamknięciu dokumentu. Jednak natywna kontrolka zawartości pozostaje w dokumencie. Możesz ponownie utworzyć kontrolkę zawartości opartą na natywnej kontrolce zawartości przy następnym otwarciu dokumentu. Aby uzyskać więcej informacji, zobacz Dodawanie kontrolek do dokumentów pakietu Office w czasie wykonywania.

Uwaga

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

Aby dodać kontrolkę zawartości w bieżącym zaznaczeniu

  1. Użyj metody, która ma klasę ControlCollection>kontrolki nazw<Add (gdzie klasa kontrolki jest nazwą klasy kontrolki zawartości, którą chcesz dodać, na przykład AddRichTextContentControl), i która ma jeden parametr dla nazwy nowej kontrolki.

    W poniższym przykładzie kodu użyto AddRichTextContentControl metody , aby dodać nowy RichTextContentControl element na początku dokumentu. Aby uruchomić ten kod, dodaj kod do ThisDocument klasy w projekcie i wywołaj metodę AddRichTextControlAtSelection z ThisDocument_Startup procedury obsługi zdarzeń.

    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ć kontrolkę zawartości w określonym zakresie

  1. Użyj metody, która ma klasę ControlCollection> kontrolki nazw<Add (gdzie klasa kontrolki jest nazwą klasy kontrolki zawartości, którą chcesz dodać, na przykład AddRichTextContentControl), i która ma Range parametr.

    W poniższym przykładzie kodu użyto AddRichTextContentControl metody , aby dodać nowy RichTextContentControl element na początku dokumentu. Aby uruchomić ten kod, dodaj kod do ThisDocument klasy w projekcie i wywołaj metodę AddRichTextControlAtRange z ThisDocument_Startup procedury obsługi zdarzeń.

    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ć kontrolkę zawartości opartą na natywnej kontrolce zawartości

  1. Użyj metody, która ma klasę ControlCollection> kontrolki nazw<Add (gdzie klasa kontrolki jest nazwą klasy kontrolki zawartości, którą chcesz dodać, na przykład AddRichTextContentControl), i która ma Microsoft.Office.Interop.Word.ContentControl parametr.

    W poniższym przykładzie kodu użyto AddRichTextContentControl metody , aby utworzyć nową RichTextContentControl dla każdej natywnej kontrolki tekstu sformatowanego, która znajduje się w dokumencie. Aby uruchomić ten kod, dodaj kod do ThisDocument klasy w projekcie i wywołaj metodę CreateRichTextControlsFromNativeControls z ThisDocument_Startup procedury obsługi zdarzeń.

    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 kontrolek zawartości w czasie wykonywania w projekcie dodatku VSTO

Kontrolki zawartości można dodawać programowo do dowolnego otwartego dokumentu w czasie wykonywania przy użyciu dodatku VSTO. W tym celu wygeneruj Document element hosta oparty na otwartym dokumencie, a następnie użyj metod Controls właściwości tego elementu hosta. Każda metoda ma trzy przeciążenia, których można użyć do dodania kontrolki zawartości w następujący sposób:

  • Dodaj kontrolkę w bieżącym zaznaczeniu.

  • Dodaj kontrolkę w określonym zakresie.

  • Dodaj kontrolkę opartą na natywnej kontrolce zawartości w dokumencie.

    Dynamiczne kontrolki zawartości nie są utrwalane w dokumencie po zamknięciu dokumentu. Jednak natywna kontrolka zawartości pozostaje w dokumencie. Możesz ponownie utworzyć kontrolkę zawartości opartą na natywnej kontrolce zawartości przy następnym otwarciu dokumentu. Aby uzyskać więcej informacji, zobacz Utrwalanie kontrolek dynamicznych w dokumentach pakietu Office.

    Aby uzyskać więcej informacji na temat generowania elementów hosta w projektach dodatków VSTO, zobacz Rozszerzanie dokumentów programu Word i skoroszytów programu Excel w dodatku VSTO w czasie wykonywania.

Uwaga

Aby dodać kontrolkę zawartości pola wyboru do dokumentu, należy utworzyć ContentControl obiekt. Aby uzyskać więcej informacji, zobacz Kontrolki zawartości.

Aby dodać kontrolkę zawartości w bieżącym zaznaczeniu

  1. Użyj metody, która ma klasę ControlCollection>kontrolki nazw<Add (gdzie klasa kontrolki jest nazwą klasy kontrolki zawartości, którą chcesz dodać, na przykład AddRichTextContentControl), i która ma jeden parametr dla nazwy nowej kontrolki.

    W poniższym przykładzie kodu użyto AddRichTextContentControl metody , aby dodać nowy RichTextContentControl element na początku aktywnego dokumentu. Aby uruchomić ten kod, dodaj kod do ThisAddIn klasy w projekcie i wywołaj metodę AddRichTextControlAtSelection z ThisAddIn_Startup procedury obsługi zdarzeń.

    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ć kontrolkę zawartości w określonym zakresie

  1. Użyj metody, która ma klasę ControlCollection> kontrolki nazw<Add (gdzie klasa kontrolki jest nazwą klasy kontrolki zawartości, którą chcesz dodać, na przykład AddRichTextContentControl), i która ma Range parametr.

    W poniższym przykładzie kodu użyto AddRichTextContentControl metody , aby dodać nowy RichTextContentControl element na początku aktywnego dokumentu. Aby uruchomić ten kod, dodaj kod do ThisAddIn klasy w projekcie i wywołaj metodę AddRichTextControlAtRange z ThisAddIn_Startup procedury obsługi zdarzeń.

    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ć kontrolkę zawartości opartą na natywnej kontrolce zawartości

  1. Użyj metody, która ma klasę ControlCollection> kontrolki nazw<Add (gdzie klasa kontrolki jest nazwą klasy kontrolki zawartości, którą chcesz dodać, na przykład AddRichTextContentControl), i która ma Microsoft.Office.Interop.Word.ContentControl parametr.

    Poniższy przykład kodu używa AddRichTextContentControl metody , aby utworzyć nową RichTextContentControl dla każdej natywnej kontrolki tekstu sformatowanego, która znajduje się w dokumencie po otwarciu dokumentu. Aby uruchomić ten kod, dodaj kod do ThisAddIn klasy w projekcie.

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

    W języku C#należy również dołączyć Application_DocumentOpen program obsługi zdarzeń do DocumentOpen zdarzenia.

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