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 wykonywania w projekcie na poziomie dokumentu
Dodawanie kontrolek zawartości w czasie wykonywania w projekcie dodatku VSTO
Aby uzyskać informacje na temat kontrolek zawartości, zobacz Kontrolki zawartości.
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
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.
Otwórz przybornik i kliknij kartę Kontrolki programu Word.
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
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.
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.
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
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
zThisDocument_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
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
zThisDocument_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
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 maMicrosoft.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
zThisDocument_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
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
zThisAddIn_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
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
zThisAddIn_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
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 maMicrosoft.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);
Powiązana zawartość
- Automatyzowanie programu Word przy użyciu obiektów rozszerzonych
- Omówienie elementów hosta i kontrolek hosta
- Dodawanie kontrolek do dokumentów pakietu Office w czasie wykonywania
- Ograniczenia programowe elementów hosta i kontrolek hosta
- Dodatki programu VSTO
- Dostosowania na poziomie dokumentu programu