Wskazówki: dodawanie formantów do dokumentów w czasie wykonywania w dodatkach na poziomie aplikacji
Za pomocą dodatku poziomie aplikacji, można dodać formanty do dowolnego otwartego dokumentu programu Microsoft Office Word.W tym instruktażu przedstawiono sposób użycia na Wstążce w celu umożliwienia użytkownikom dodać Button lub RichTextContentControl do dokumentu.
Stosuje się do: informacje w tym temacie dotyczą projektów poziomie aplikacji dla programu Word 2010.Aby uzyskać więcej informacji, zobacz Funkcje dostępne w aplikacjach pakietu Office i typ projektu.
W tym instruktażu przedstawiono następujące zadania:
Tworzenie nowego programu Word-w projektu.
Zapewnienie interfejsu użytkownika (UI), aby dodać formanty do dokumentu.
Dodawanie formantów do dokumentu w czasie wykonywania.
Usuwanie formantów 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 Dostosowywanie ustawień środowiska deweloperskiego w Visual Studio.
Wymagania wstępne
Potrzebne do przeprowadzenia tego instruktażu następujące składniki:
Edycja programu Visual Studio 2013, która oferuje narzędzia deweloperskie pakietu Microsoft Office. Aby uzyskać więcej informacji, zobacz Konfigurowanie komputera do opracowywania rozwiązań pakietu Office.
Word 2013or Word 2010.
Tworzenie nowego programu Word-w projektu
Rozpocząć od utworzenia Word-w projekcie.
Aby utworzyć nowe słowo-w projekt
Tworzenie projektu w w poziomie aplikacji dla programu Word o nazwie WordDynamicControls.Aby uzyskać więcej informacji, zobacz Porady: tworzenie projektów Office w Visual Studio.
Dodaj odwołanie do Microsoft.Office.Tools.Word.v4.0.Utilities.dll zestawu.To odwołanie jest wymagane Aby programowo dodać kontroli Windows Forms dokument później w tym instruktażu.
Zapewnienie interfejsu użytkownika, aby dodać formanty do dokumentu
Dodawanie karty niestandardowej do Wstążki programu Word.Użytkownicy mogą wybrać pola wyboru na karcie, aby dodać formanty do dokumentu.
Aby zapewnić interfejs użytkownika, aby dodać formanty do dokumentu
Na Projekt menu, kliknij przycisk Dodaj nowy element.
W Dodaj nowy element okno dialogowe, wybierz wstążki (Visual Designer).
Zmień nazwę nowej taśmy do MyRibboni kliknij przycisk Dodaj.
MyRibbon.cs lub MyRibbon.vb plik zostanie otwarty w Projektancie Wstążki i wyświetla domyślną kartę i grupy.
W Projektancie Wstążki kliknij grupa1 grupy.
W Właściwości okna, zmiana etykiety właściwość dla grupa1 Aby dodać formanty.
Z Formanty wstążki Office karta Przybornik, przeciągnij pole wyboru kontrolkę grupa1.
Kliknij przycisk CheckBox1 , aby go zaznaczyć.
W Właściwości okna, Zmień następujące właściwości.
Właściwość
Wartość
Nazwa
addButtonCheckBox
Etykieta
Dodawanie przycisku
Drugie pole wyboru, aby dodać grupa1, a następnie Zmień następujące właściwości.
Właściwość
Wartość
Nazwa
addRichTextCheckBox
Etykieta
Dodaj formant tekstu sformatowanego
W Projektancie Wstążki kliknij dwukrotnie przycisk Dodaj.
Click Obsługi zdarzeń, pole wyboru Dodaj przycisk otwiera Edytor kodu.
Powrócić do projektanta wstążki, a następnie kliknij dwukrotnie ikonę Dodaj formant tekstu sformatowanego.
Click Obsługi zdarzeń, pole wyboru Dodaj formant tekstu sformatowanego zostanie otwarty w edytorze kodu.
Później w tym instruktażu należy dodać kod do te programy obsługi zdarzeń, aby dodawać i usuwać formanty aktywnego dokumentu.
Dodawanie i usuwanie formantów w aktywnym dokumencie
W kodzie w, należy przekonwertować aktywnego dokumentu do Documenthosta elementu zanim będzie można dodać formant. W rozwiązaniach dla pakietu Office można dodać formanty zarządzane tylko do elementów hosta, które działają jak kontenery dla formantów.W poziomie aplikacji w projektach hosta elementy mogą być tworzone w czasie wykonywania za pomocą GetVstoObject metoda.
Dodanie metody do ThisAddIn klasy, który można wywołać, aby dodać lub usunąć Button lub RichTextContentControl w aktywnym dokumencie.Później w tym instruktażu będzie wywoływać te metody z Click obsługi zdarzeń pól wyboru na Wstążce.
Dodawanie i usuwanie formantów w aktywnym dokumencie
W Solution Explorer, kliknij dwukrotnie ThisAddIn.cs lub ThisAddIn.vb, aby otworzyć plik w edytorze kodu.
Dodaj następujący kod do ThisAddIn klasy.Ten kod deklaruje Button i RichTextContentControl obiektów, które reprezentują formantów, które zostaną dodane do dokumentu.
Private button As Microsoft.Office.Tools.Word.Controls.Button = Nothing Private richTextControl As RichTextContentControl = Nothing
private Microsoft.Office.Tools.Word.Controls.Button button = null; private RichTextContentControl richTextControl = null;
Dodaj następującą metodę do ThisAddIn klasy.Gdy użytkownik kliknie pole wyboru Dodaj przycisk na Wstążce, Metoda ta dodaje Button do bieżącego zaznaczenia w dokumencie, jeśli pole wyboru jest zaznaczone, lub usuwa Button , jeśli pole wyboru jest wyczyszczone.
Friend Sub ToggleButtonOnDocument() Dim vstoDocument As Document = Globals.Factory.GetVstoObject(Me.Application.ActiveDocument) Dim name As String = "MyButton" If Globals.Ribbons.MyRibbon.addButtonCheckBox.Checked Then Dim selection = Me.Application.Selection If selection IsNot Nothing AndAlso selection.Range IsNot Nothing Then button = vstoDocument.Controls.AddButton( _ selection.Range, 100, 30, name) End If Else vstoDocument.Controls.Remove(name) End If End Sub
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 formant tekstu sformatowanego na Wstążce, Metoda ta dodaje RichTextContentControl do bieżącego zaznaczenia w dokumencie, jeśli pole wyboru jest zaznaczone, lub usuwa RichTextContentControl , jeśli pole wyboru jest wyczyszczone.
Friend Sub ToggleRichTextControlOnDocument() Dim vstoDocument As Document = Globals.Factory.GetVstoObject(Me.Application.ActiveDocument) Dim name As String = "MyRichTextBoxControl" If Globals.Ribbons.MyRibbon.addRichTextCheckBox.Checked Then Dim selection = Me.Application.Selection If selection IsNot Nothing AndAlso selection.Range IsNot Nothing Then richTextControl = vstoDocument.Controls.AddRichTextContentControl( _ selection.Range, name) End If Else vstoDocument.Controls.Remove(name) End If End Sub
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); } }
Gdy dokument dla formantu przycisk usuwania jest zapisywany.
Formantów Windows Forms nie są zachowywane, gdy dokument jest zapisany, a następnie zamknięte.Jednak otoka ActiveX dla każdego formantu pozostanie w dokumencie i granicy otoki to mogą być postrzegane przez użytkowników końcowych, po otwarciu dokumentu.Istnieje kilka sposobów, aby oczyścić dynamicznie utworzona formantów Windows Forms dodatków.W tym instruktażu programistycznie usunąć Button kontrolować, kiedy dokument zostanie zapisany.
Aby usunąć formant przycisku, gdy dokument zostanie zapisany
W pliku kod ThisAddIn.cs lub ThisAddIn.vb, należy dodać następujące metody do ThisAddIn klasy.Ta metoda jest moduł obsługi zdarzenia DocumentBeforeSave zdarzenie.Jeśli został zapisany dokument Document element hosta, który jest skojarzony z nim program obsługi zdarzeń pobiera element hosta i usuwa Button kontroli, jeśli taka istnieje.
Private Sub Application_DocumentBeforeSave(ByVal Doc As Word.Document, _ ByRef SaveAsUI As Boolean, ByRef Cancel As Boolean) Handles Application.DocumentBeforeSave Dim isExtended As Boolean = Globals.Factory.HasVstoObject(Doc) If isExtended Then Dim vstoDocument As Document = Globals.Factory.GetVstoObject(Doc) If vstoDocument.Controls.Contains(button) Then vstoDocument.Controls.Remove(button) Globals.Ribbons.MyRibbon.addButtonCheckBox.Checked = False End If End If End Sub
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 ThisAddIn_Startup programu obsługi zdarzeń.Kod ten jest wymagany w C# do łączenia Application_DocumentBeforeSave obsługi zdarzeń z DocumentBeforeSave zdarzenie.
this.Application.DocumentBeforeSave += new Word.ApplicationEvents4_DocumentBeforeSaveEventHandler( Application_DocumentBeforeSave);
Dodawanie i usuwanie formantów, gdy użytkownik kliknie pole wyboru na Wstążce
Wreszcie, modyfikowanie Click obsługi zdarzeń pól wyboru dodane do wstążki, aby dodać lub usunąć formanty w dokumencie.
Aby dodać lub usunąć kontroluje, kiedy użytkownik kliknie pole wyboru na Wstążce
Zastąpić wygenerowany w pliku kod MyRibbon.cs lub MyRibbon.vb addButtonCheckBox_Click i addRichTextCheckBox_Click obsługi zdarzeń z następującego kodu.Ten kod na nowo definiuje te programy obsługi zdarzeń, aby zadzwonić do ToggleButtonOnDocument i ToggleRichTextControlOnDocument metod, które zostały dodane do ThisAddIn klasy wcześniej w tym instruktażu.
Private Sub addButtonCheckBox_Click(ByVal sender As System.Object, _ ByVal e As RibbonControlEventArgs) Handles addButtonCheckBox.Click Globals.ThisAddIn.ToggleButtonOnDocument() End Sub Private Sub addRichTextCheckBox_Click(ByVal sender As System.Object, _ ByVal e As RibbonControlEventArgs) Handles addRichTextCheckBox.Click Globals.ThisAddIn.ToggleRichTextControlOnDocument() End Sub
private void addButtonCheckBox_Click(object sender, RibbonControlEventArgs e) { Globals.ThisAddIn.ToggleButtonOnDocument(); } private void addRichTextCheckBox_Click(object sender, RibbonControlEventArgs e) { Globals.ThisAddIn.ToggleRichTextControlOnDocument(); }
Testowanie rozwiązania
Dodać formanty do dokumentu, wybierając je z karty niestandardowej na Wstążce.Podczas zapisywania dokumentu, Button kontroli jest usuwany.
Aby przetestować rozwiązanie.
Naciśnij klawisz F5, aby uruchomić projekt.
W dokumencie aktywnym naciśnij klawisz ENTER kilka razy, aby dodać nowe puste akapity w dokumencie.
Zaznacz pierwszy akapit.
Kliknij przycisk Dodatki kartę.
W Dodać formanty grupy, kliknij przycisk Przycisk Dodaj.
Przycisk pojawia się w ust.
Zaznacz akapit ostatni.
W Dodać formanty grupy, kliknij przycisk Dodać formant tekstu sformatowanego.
Formant zawartości tekstu sformatowanego jest dodawana do ostatniego akapitu.
Zapisz dokument.
Przycisk jest usuwany z dokumentu.
Następne kroki
Więcej o formantach w poziomie aplikacji dodatków z tych tematów można uzyskać:
Przykładowy pokazuje, jak dodać wiele typów formantów do dokumentu w czasie wykonywania i odtworzyć formantów, po otwarciu dokumentu, zobacz program Word-w dynamicznej kontroli próbki w Office Development ― Przykłady i wskazówki.
Instruktaż, który pokazuje, jak dodać formanty do arkusza przy użyciu dodatku poziomie aplikacji dla programu Excel, zobacz Wskazówki: dodawanie formantów do arkuszy w czasie wykonywania w projektach na poziomie aplikacji.
Zobacz też
Zadania
Porady: dodawanie formantów formularzy Windows do dokumentów pakietu Office
Porady: dodawanie formantów zawartości do dokumentów programu Word
Koncepcje
Dodawanie formantów do dokumentów pakietu Office w czasie wykonywania
Przechowywanie formantów dynamicznych w dokumentach pakietu Office