Przewodnik: dodawanie kontrolek do dokumentu w czasie wykonywania w dodatku VSTO
Kontrolki można dodawać do dowolnego otwartego dokumentu programu Microsoft Office Word przy użyciu dodatku VSTO. W tym przewodniku pokazano, jak używać wstążki, aby umożliwić użytkownikom dodawanie Button elementu lub do RichTextContentControl dokumentu.
Dotyczy: informacje w tym temacie dotyczą projektów dodatków VSTO dla programu Word 2010. Aby uzyskać więcej informacji, zobacz Dostępne funkcje uporządkowane według aplikacji pakietu Office i typu projektu.
W instruktażu przedstawiono następujące zagadnienia:
Tworzenie nowego projektu dodatku programu Word VSTO.
Udostępnianie interfejsu użytkownika w celu dodania kontrolek do dokumentu.
Dodawanie kontrolek do dokumentu w czasie wykonywania.
Usuwanie kontrolek z dokumentu.
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.
Wymagania wstępne
Następujące składniki są wymagane do przeprowadzenia tego instruktażu:
Edycja programu Visual Studio, która oferuje narzędzia deweloperskie pakietu Microsoft Office. Aby uzyskać więcej informacji, zobacz Konfigurowanie komputera do tworzenia rozwiązań pakietu Office.
Word 2013 lub Word 2010 .
Tworzenie nowego projektu dodatku programu Word
Zacznij od utworzenia projektu dodatku programu Word VSTO.
Aby utworzyć nowy projekt dodatku programu Word VSTO
Utwórz projekt dodatku VSTO dla programu Word o nazwie WordDynamicControls. Aby uzyskać więcej informacji, zobacz How to: Create Office projects in Visual Studio (Jak tworzyć projekty pakietu Office w programie Visual Studio).
Dodaj odwołanie do zestawu Microsoft.Office.Tools.Word.v4.0.Utilities.dll . To odwołanie jest wymagane do programowego dodania kontrolki Windows Forms do dokumentu w dalszej części tego przewodnika.
Udostępnianie interfejsu użytkownika do dodawania kontrolek do dokumentu
Dodaj kartę niestandardową do wstążki w programie Word. Użytkownicy mogą zaznaczać pola wyboru na karcie, aby dodać kontrolki do dokumentu.
Aby udostępnić interfejs użytkownika do dodawania kontrolek do dokumentu
W menu Project (Projekt) kliknij pozycję Add New Item (Dodaj nowy element).
W oknie dialogowym Dodawanie nowego elementu wybierz pozycję Wstążka (Visual Projektant).
Zmień nazwę nowej wstążki na MyRibbon, a następnie kliknij przycisk Dodaj.
Plik MyRibbon.cs lub MyRibbon.vb zostanie otwarty w Projektant wstążki i wyświetli domyślną kartę i grupę.
W Projektant wstążki kliknij grupę group1.
W oknie Właściwości zmień właściwość Label dla grupy group1 na Dodaj kontrolki.
Na karcie Kontrolki wstążki pakietu Office przybornika przeciągnij kontrolkę CheckBox do grupy group1.
Kliknij pozycję CheckBox1 , aby ją zaznaczyć.
W oknie Właściwości zmień następujące właściwości.
Właściwości Wartość Nazwa/nazwisko addButtonCheckBox Etykieta Dodaj przycisk Dodaj drugie pole wyboru do grupy group1, a następnie zmień następujące właściwości.
Właściwości Wartość Nazwa/nazwisko addRichTextCheckBox Etykieta Dodawanie kontrolki tekstu sformatowanych Na Projektant wstążki kliknij dwukrotnie przycisk Dodaj.
Procedura Click obsługi zdarzeń pola wyboru Dodaj przycisk zostanie otwarta w Edytorze kodu.
Wróć do Projektant wstążki, a następnie kliknij dwukrotnie pozycję Dodaj kontrolkę tekstu sformatowanego.
Procedura Click obsługi zdarzeń pola wyboru Dodaj kontrolkę tekstu sformatowanego zostanie otwarta w Edytorze kodu.
W dalszej części tego przewodnika dodasz kod do tych programów obsługi zdarzeń, aby dodać i usunąć kontrolki w aktywnym dokumencie.
Dodawanie i usuwanie kontrolek w aktywnym dokumencie
W kodzie dodatku VSTO należy przekonwertować aktywny dokument na Documentelement hosta, zanim będzie można dodać kontrolkę. W rozwiązaniach pakietu Office kontrolki zarządzane można dodawać tylko do elementów hosta, które działają jako kontenery dla kontrolek. W projektach dodatków VSTO elementy hosta można tworzyć w czasie wykonywania przy użyciu GetVstoObject
metody .
Dodaj metody do ThisAddIn
klasy, którą można wywołać, aby dodać lub usunąć Button element lub RichTextContentControl w aktywnym dokumencie. W dalszej części tego przewodnika wywołasz te metody z Click procedur obsługi zdarzeń pól wyboru na wstążce.
Aby dodać i usunąć kontrolki w aktywnym dokumencie
W Eksplorator rozwiązań kliknij dwukrotnie plik ThisAddIn.cs lub ThisAddIn.vb, aby otworzyć plik w Edytorze kodu.
Dodaj poniższy kod do klasy
ThisAddIn
. Ten kod deklaruje Button i RichTextContentControl obiekty reprezentujące kontrolki, które zostaną dodane do dokumentu.Dodaj następującą metodę do
ThisAddIn
klasy . Gdy użytkownik kliknie pole wyboru Dodaj przycisk na wstążce, ta metoda dodaje Button element do bieżącego zaznaczenia dokumentu, jeśli pole wyboru jest zaznaczone, lub usuwa pole wyboru, jeśli pole wyboru zostało wyczyszczone Button .internal void ToggleButtonOnDocument() { Document vstoDocument = Globals.Factory.GetVstoObject(this.Application.ActiveDocument); string name = "MyButton"; if (Globals.Ribbons.MyRibbon.addButtonCheckBox.Checked) { Word.Selection selection = this.Application.Selection; if (selection != null && selection.Range != null) { button = vstoDocument.Controls.AddButton( selection.Range, 100, 30, name); } } else { vstoDocument.Controls.Remove(name); } }
Dodaj następującą metodę do
ThisAddIn
klasy . Gdy użytkownik kliknie pole wyboru Dodaj kontrolkę tekstu sformatowanego na wstążce, ta metoda dodaje RichTextContentControl element do bieżącego zaznaczenia dokumentu, jeśli pole wyboru jest zaznaczone, lub usuwa pole wyboru, jeśli pole wyboru jest wyczyszczoneRichTextContentControl.internal void ToggleRichTextControlOnDocument() { Document vstoDocument = Globals.Factory.GetVstoObject(this.Application.ActiveDocument); string name = "MyRichTextBoxControl"; if (Globals.Ribbons.MyRibbon.addRichTextCheckBox.Checked) { Word.Selection selection = this.Application.Selection; if (selection != null && selection.Range != null) { richTextControl = vstoDocument.Controls.AddRichTextContentControl( selection.Range, name); } } else { vstoDocument.Controls.Remove(name); } }
Usuń kontrolkę Przycisk po zapisaniu dokumentu
Kontrolki formularzy systemu Windows nie są utrwalane podczas zapisywania dokumentu, a następnie zamykane. Jednak otoka ActiveX dla każdej kontrolki pozostaje w dokumencie, a obramowanie tej otoki może być widoczne dla użytkowników końcowych po ponownym otwarciu dokumentu. Istnieje kilka sposobów czyszczenia dynamicznie utworzonych kontrolek formularzy systemu Windows w dodatku VSTO. W tym przewodniku programowo usuniesz kontrolkę Button po zapisaniu dokumentu.
Aby usunąć kontrolkę Przycisk po zapisaniu dokumentu
W pliku kodu ThisAddIn.cs lub ThisAddIn.vb dodaj następującą
ThisAddIn
metodę do klasy. Ta metoda jest procedurą obsługi zdarzeń dla DocumentBeforeSave zdarzenia. Jeśli zapisany dokument zawiera Document skojarzony z nim element hosta, program obsługi zdarzeń pobiera element hosta i usuwa kontrolkę Button , jeśli istnieje.private void Application_DocumentBeforeSave(Word.Document Doc, ref bool SaveAsUI, ref bool Cancel) { bool isExtended = Globals.Factory.HasVstoObject(Doc); if (isExtended) { Microsoft.Office.Tools.Word.Document vstoDocument = Globals.Factory.GetVstoObject(Doc); if (vstoDocument.Controls.Contains(button)) { vstoDocument.Controls.Remove(button); Globals.Ribbons.MyRibbon.addButtonCheckBox.Checked = false; } } }
W języku C# dodaj następujący kod do programu obsługi zdarzeń
ThisAddIn_Startup
. Ten kod jest wymagany w języku C# w celu połączeniaApplication_DocumentBeforeSave
programu obsługi zdarzeń ze zdarzeniem DocumentBeforeSave .this.Application.DocumentBeforeSave += new Word.ApplicationEvents4_DocumentBeforeSaveEventHandler( Application_DocumentBeforeSave);
Dodawanie i usuwanie kontrolek po kliknięciu pól wyboru na wstążce przez użytkownika
Na koniec zmodyfikuj Click programy obsługi zdarzeń pól wyboru dodanych do wstążki, aby dodać lub usunąć kontrolki w dokumencie.
Aby dodać lub usunąć kontrolki, gdy użytkownik kliknie pola wyboru na wstążce
W pliku kodu MyRibbon.cs lub MyRibbon.vb zastąp wygenerowane
addButtonCheckBox_Click
iaddRichTextCheckBox_Click
programy obsługi zdarzeń następującym kodem. Ten kod ponownie definiuje te programy obsługi zdarzeń w celu wywołaniaToggleButtonOnDocument
metod iToggleRichTextControlOnDocument
dodanych doThisAddIn
klasy wcześniej w tym przewodniku.
Testowanie rozwiązania
Dodaj kontrolki do dokumentu, wybierając je z karty niestandardowej na wstążce. Po zapisaniu dokumentu kontrolka zostanie usunięta Button .
Aby przetestować rozwiązanie.
Naciśnij klawisz F5 , aby uruchomić projekt.
W aktywnym dokumencie naciśnij klawisz Enter kilka razy, aby dodać nowe puste akapity do dokumentu.
Wybierz pierwszy akapit.
Kliknij kartę Dodatki .
W grupie Dodawanie kontrolek kliknij przycisk Dodaj.
Przycisk zostanie wyświetlony w pierwszym akapicie.
Wybierz ostatni akapit.
W grupie Dodawanie kontrolek kliknij pozycję Dodaj kontrolkę tekstu sformatowago.
Kontrolka zawartości tekstu sformatowanego jest dodawana do ostatniego akapitu.
Zapisz dokument.
Przycisk zostanie usunięty z dokumentu.
Następne kroki
Więcej informacji na temat kontrolek w dodatku VSTO można znaleźć w następujących tematach:
Przykład pokazujący, jak dodać wiele innych typów kontrolek do dokumentu w czasie wykonywania i ponownie utworzyć kontrolki po ponownym otwarciu dokumentu, zobacz przykład Dynamiczne kontrolki dodatku programu Word w przykładach programowania pakietu Office i przewodnikach.
Aby zapoznać się z przewodnikiem, który pokazuje, jak dodawać kontrolki do arkusza przy użyciu dodatku VSTO dla programu Excel, zobacz Przewodnik: dodawanie kontrolek do arkusza w czasie wykonywania w projekcie dodatku VSTO.
Powiązana zawartość
- Rozwiązania programu Word
- Dodawanie kontrolek do dokumentów pakietu Office w czasie wykonywania
- Utrwalanie kontrolek dynamicznych w dokumentach pakietu Office
- Instrukcje: dodawanie kontrolek formularzy systemu Windows do dokumentów pakietu Office
- Instrukcje: dodawanie kontrolek zawartości do dokumentów programu Word
- Rozszerzanie dokumentów programu Word i skoroszytów programu Excel w dodatku VSTO w czasie wykonywania