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:
Dodawanie formantu zawartości z Formantów programu Word karta Przybornik.
Dodawanie formantu zawartości dokumentu w taki sam sposób można dodać macierzystego formantu zawartości w programie Word.
Przeciągnij formant zawartości dokumentu z Źródła danych okna.Jest to przydatne, gdy chcesz powiązać formant z danych, tworzony jest formant.Aby uzyskać więcej informacji, zobacz Porady: zapełnianie dokumentów danymi z obiektów i Porady: zapeł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 Dostosowywanie ustawień środowiska deweloperskiego w Visual Studio.
Aby dodać formant zawartości do dokumentu za pomocą przybornika
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.
Otwórz Przybornik i kliknij przycisk Kontroli słowo kartę.
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
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.
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.
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