Sdílet prostřednictvím


Návod: Přidání ovládacích prvků do dokumentu za běhu v doplňku na úrovni aplikace

Pomocí doplňku pro úroveň aplikace můžete přidat ovládací prvky libovolného otevřeného dokumentu Microsoft Office Word.Tento návod ukazuje, jak povolit uživatelům přidávat pomocí pásu karet Button nebo RichTextContentControl do dokumentu.

Platí pro: informace v tomto tématu se vztahují na projekty na úrovni aplikace Word 2010.Další informace naleznete v tématu Dostupné funkce podle aplikací systému Office a typů projektu.

Tento návod ilustruje následující úkoly:

  • Vytvoření nové aplikace Word přidat do projektu.

  • Poskytuje uživatelské rozhraní (UI) přidat ovládací prvky v dokumentu.

  • Přidání ovládacích prvků v dokumentu v době běhu.

  • Odebrání ovládacích prvků z dokumentu.

[!POZNÁMKA]

Na vašem počítači se můžou v následujících pokynech zobrazovat jiné názvy nebo umístění některých prvků uživatelského rozhraní Visual Studia. Tyto prvky jsou určeny edicí sady Visual Studio a použitým nastavením. Další informace najdete v tématu Přizpůsobení nastavení pro vývoj v sadě Visual Studio.

Požadavky

Chcete-li dokončit tento návod, potřebujete následující komponenty:

Vytvoření nové aplikace Word přidat v projektu

Začněte vytvořením projektu přidat v aplikaci Word.

Vytvoření nové slovo přidat do projektu

  1. Vytvoření projektu v úroveň aplikace Word s názvem WordDynamicControls.Další informace naleznete v tématu Postupy: Vytváření projektů pro systém Office v prostředí Visual Studio.

  2. Přidat odkaz Microsoft.Office.Tools.Word.v4.0.Utilities.dll sestavení.Tento odkaz vyžaduje programově přidat ovládací prvek model Windows Forms dokument dále v tomto návodu.

Poskytování uživatelského rozhraní přidat ovládací prvky do dokumentu

Přidáte vlastní kartu pásu karet v aplikaci Word.Uživatelé mohou vybrat zaškrtávací políčka na kartě dokumentu přidat ovládací prvky.

Uživatelské rozhraní přidat ovládací prvky do dokumentu

  1. V nabídce Projekt klikněte na příkaz Přidat novou položku.

  2. V Přidat novou položku dialogovém pásu karet (vizuální návrhář).

  3. Změňte název nové pásu karet na MyRibbona na Přidat.

    MyRibbon.cs nebo MyRibbon.vb soubor se otevře v Návrháři pásu karet a zobrazí výchozí kartu a skupiny.

  4. V Návrháři pásu karet klepněte skupina1 skupiny.

  5. V Vlastnosti okno Změnit štítek vlastnost pro skupina1 přidání ovládacích prvků.

  6. Z Ovládací prvky pásu karet Office kartě nástrojů, přetáhněte CheckBox na ovládací prvek skupina1.

  7. Klepněte na CheckBox1 jej vyberte.

  8. V Vlastnosti okna, změnit následující vlastnosti.

    Property

    Value

    Název

    addButtonCheckBox

    Popisek

    Přidání tlačítka

  9. Přidání druhého zaškrtávacího políčka na skupina1a potom změňte následující vlastnosti.

    Property

    Value

    Název

    addRichTextCheckBox

    Popisek

    Přidejte ovládací prvek RTF

  10. V Návrháři pásu karet poklepejte na tlačítko Přidat.

    Click Obslužné rutiny políčko Přidat tlačítko se otevře v editoru kódu.

  11. Vrátit Návrhář pásu karet a poklepejte na ovládací prvek formátovaného textu.

    Click Obslužné rutiny políčko ovládací prvek formátovaného textu se otevře v editoru kódu.

Dále v tomto návodu přidáte kód tyto obslužné rutiny událostí, přidávat a odebírat ovládací prvky na aktivním dokumentu.

Přidání a odebrání ovládacích prvků na aktivní dokument.

V kódu přidat, je nutné převést do aktivního dokumentu Documentpoložku hostitele před přidáním ovládacího prvku. V řešeních Office spravované ovládací prvky lze pouze do položek hostitele, které fungují jako kontejnery pro ovládací prvky.Na úrovni aplikace přidat v projektech může hostitel položky vytvořen za běhu pomocí GetVstoObject metoda.

Přidat metody ThisAddIn třídy, kterou lze volat pro přidání nebo odebrání Button nebo RichTextContentControl v aktivním dokumentu.Dále v tomto návodu budete volat tyto metody z Click obslužné rutiny políčka na pásu karet.

Přidávat a odebírat ovládací prvky na aktivním dokumentu.

  1. V Průzkumníku, poklepejte na ThisAddIn.cs nebo ThisAddIn.vb k otevření souboru v editoru kódu.

  2. Přidejte následující kód do třídy ThisAddIn.Tento kód deklaruje Button a RichTextContentControl objekty, které představují ovládací prvky, které budou přidány 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. Přidejte následující metodu ThisAddIn třídy.Po klepnutí na tlačítko Přidat zaškrtávací políčko na pásu karet, tato metoda přidá Button na aktuální výběr v dokumentu, pokud je zaškrtnuto políčko nebo odebere Button Pokud je zrušeno zaškrtnutí políčka.

    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. Přidejte následující metodu ThisAddIn třídy.Když uživatel klepne na zaškrtávací políčko ovládací prvek formátovaného textu na pásu karet, tato metoda přidá RichTextContentControl na aktuální výběr v dokumentu, pokud je zaškrtnuto políčko nebo odebere RichTextContentControl Pokud je zrušeno zaškrtnutí políčka.

    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);
        }
    }
    

Odebrání tlačítko ovládacího prvku při dokumentu uložena.

Ovládací prvky model Windows Forms nepřetrvají po uložení dokumentu a pak uzavřen.Však zůstane souhrnného seznamu stop ActiveX pro každý prvek v dokumentu a koncovým uživatelům může zobrazit ohraničení této obálky, při opětovném otevření dokumentu.Vyčistit dynamicky vytvářených ovládacích prvků model Windows Forms doplňky několika způsoby.V tomto návodu je programově odebrat Button řízení, při uložení dokumentu.

Při uložení dokumentu odebrat ovládací tlačítka

  1. V souboru ThisAddIn.cs nebo ThisAddIn.vb kódu přidejte následující metodu k ThisAddIn třídy.Tato metoda obslužné rutiny události je DocumentBeforeSave události.Pokud má dokument uložený Document získá položku hostitele hostitel zboží spojené s jeho obslužnou rutinu události a odebere Button ovládacího prvku, pokud existuje.

    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. V jazyce C# přidejte následující kód ThisAddIn_Startup obslužné rutiny události.Tento kód v jazyce C# připojení vyžaduje Application_DocumentBeforeSave obslužnou rutinu události DocumentBeforeSave události.

    this.Application.DocumentBeforeSave += 
        new Word.ApplicationEvents4_DocumentBeforeSaveEventHandler(
        Application_DocumentBeforeSave);
    

Přidání a odebrání ovládacích prvků, když uživatel klepne na zaškrtávací políčka na pásu karet

Nakonec změnit Click obslužné rutiny políčka přidán pásu přidat nebo odebrat ovládací prvky v dokumentu.

Přidat nebo odebrat prvky, když uživatel klepne na zaškrtávací políčka na pásu karet

  • Nahradit, generované v kódu souboru MyRibbon.cs nebo MyRibbon.vb addButtonCheckBox_Click a addRichTextCheckBox_Click obslužné rutiny událostí pomocí následujícího kódu.Tento kód předefinuje tyto obslužné rutiny událostí pro volání ToggleButtonOnDocument a ToggleRichTextControlOnDocument metod, které jste přidali ThisAddIn třída dříve v tomto návodu.

    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();
    }
    

Testování řešení

Přidejte ovládací prvky dokumentu výběrem z vlastní kartu na pásu karet.Při uložení dokumentu, Button odebrání ovládacího prvku.

Test řešení.

  1. Stisknutím klávesy F5 spustit projektu.

  2. V aktivním dokumentu opakovaným stisknutím klávesy ENTER přidejte nové prázdné odstavce v dokumentu.

  3. Vyberte první odstavec.

  4. Klepněte Doplňky kartu.

  5. V Přidat ovládací prvky skupinu, klepněte na Tlačítko Přidat.

    Tlačítko se zobrazí v prvním odstavci.

  6. Vyberte poslední odstavec.

  7. V Přidat ovládací prvky skupinu, klepněte na Ovládací prvek formátovaného textu.

    Ovládací prvek obsahu pro text ve formátu RTF je přidán na poslední odstavec.

  8. Uložte dokument.

    Tlačítko je odebrán z dokumentu.

Další kroky

Další informace o ovládacích prvcích v úrovni aplikace doplňky z těchto témat:

Viz také

Úkoly

Postupy: Přidání ovládacích prvků Windows Forms do dokumentů Office

Postupy: Přidání ovládacích prvků obsahu do dokumentů aplikace Word

Koncepty

Přidání ovládacích prvků do dokumentů Office za běhu

Uchování dynamických ovládacích prvků v dokumentech systému Office

Rozšíření dokumentů aplikace Word a sešitů aplikace Excel v doplňcích na úrovni aplikace za běhu

Další zdroje

Řešení pro Word