Udostępnij za pośrednictwem


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:

Tworzenie nowego programu Word-w projektu

Rozpocząć od utworzenia Word-w projekcie.

Aby utworzyć nowe słowo-w projekt

  1. 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.

  2. 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

  1. Na Projekt menu, kliknij przycisk Dodaj nowy element.

  2. W Dodaj nowy element okno dialogowe, wybierz wstążki (Visual Designer).

  3. 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.

  4. W Projektancie Wstążki kliknij grupa1 grupy.

  5. W Właściwości okna, zmiana etykiety właściwość dla grupa1 Aby dodać formanty.

  6. Z Formanty wstążki Office karta Przybornik, przeciągnij pole wyboru kontrolkę grupa1.

  7. Kliknij przycisk CheckBox1 , aby go zaznaczyć.

  8. W Właściwości okna, Zmień następujące właściwości.

    Właściwość

    Wartość

    Nazwa

    addButtonCheckBox

    Etykieta

    Dodawanie przycisku

  9. 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

  10. W Projektancie Wstążki kliknij dwukrotnie przycisk Dodaj.

    Click Obsługi zdarzeń, pole wyboru Dodaj przycisk otwiera Edytor kodu.

  11. 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

  1. W Solution Explorer, kliknij dwukrotnie ThisAddIn.cs lub ThisAddIn.vb, aby otworzyć plik w edytorze kodu.

  2. 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;
    
  3. 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);
        }
    }
    
  4. 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

  1. 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;
            }
        }
    }
    
  2. 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.

  1. Naciśnij klawisz F5, aby uruchomić projekt.

  2. W dokumencie aktywnym naciśnij klawisz ENTER kilka razy, aby dodać nowe puste akapity w dokumencie.

  3. Zaznacz pierwszy akapit.

  4. Kliknij przycisk Dodatki kartę.

  5. W Dodać formanty grupy, kliknij przycisk Przycisk Dodaj.

    Przycisk pojawia się w ust.

  6. Zaznacz akapit ostatni.

  7. W Dodać formanty grupy, kliknij przycisk Dodać formant tekstu sformatowanego.

    Formant zawartości tekstu sformatowanego jest dodawana do ostatniego akapitu.

  8. 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ć:

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

Rozszerzanie dokumentów programu Word i skoroszytów w programie Excel w czasie wykonywania w dodatkach na poziomie aplikacji

Inne zasoby

Rozwiązania programu Word