Návod: Přidání ovládacích prvků do dokumentu za běhu v doplňku VSTO
Ovládací prvky můžete přidat do libovolného otevřeného systém Microsoft Office wordového dokumentu pomocí doplňku VSTO. Tento názorný postup ukazuje, jak pomocí pásu karet umožnit uživatelům přidat Button dokument nebo RichTextContentControl do dokumentu.
Platí pro: Informace v tomto tématu platí pro projekty doplňků VSTO pro Word 2010. Další informace najdete v tématu Dostupné funkce podle aplikace Office a typu projektu.
Tento návod znázorňuje následující úlohy:
Vytvoření nového projektu doplňku Word VSTO
Poskytnutí uživatelského rozhraní pro přidání ovládacích prvků do dokumentu
Přidání ovládacích prvků do dokumentu za běhu
Odebrání ovládacích prvků z dokumentu
Poznámka:
Váš počítač může v následujících pokynech zobrazovat odlišné názvy nebo umístění některých prvků uživatelského rozhraní sady Visual Studio. Tyto prvky jsou určeny edicí sady Visual Studio a použitým nastavením. Další informace naleznete v tématu Přizpůsobení integrovaného vývojového prostředí (IDE).
Požadavky
K dokončení tohoto návodu budete potřebovat následující komponenty:
Edice Visual Studia, která zahrnuje nástroje Microsoft Office Developer Tools. Další informace najdete v tématu Konfigurace počítače pro vývoj řešení Office.
Word 2013 nebo Word 2010 .
Vytvoření nového projektu doplňku aplikace Word
Začněte vytvořením projektu doplňku Word VSTO.
Vytvoření nového projektu doplňku Word VSTO
Vytvořte projekt doplňku VSTO pro Word s názvem WordDynamicControls. Další informace naleznete v tématu Postupy: Vytváření projektů Office v sadě Visual Studio.
Přidejte odkaz na sestavení Microsoft.Office.Tools.Word.v4.0.Utilities.dll . Tento odkaz se vyžaduje k programovému přidání ovládacího prvku model Windows Forms do dokumentu dále v tomto návodu.
Poskytnutí uživatelského rozhraní pro přidání ovládacích prvků do dokumentu
Přidání vlastní karty na pás karet ve Wordu Uživatelé mohou zaškrtnout políčka na kartě a přidat ovládací prvky do dokumentu.
Zadání uživatelského rozhraní pro přidání ovládacích prvků do dokumentu
V nabídce Projekt klepněte na tlačítko Přidat novou položku.
V dialogovém okně Přidat novou položku vyberte pás karet (Vizuální návrhář).
Změňte název nového pásu karet na MyRibbon a klikněte na Přidat.
Soubor MyRibbon.cs nebo MyRibbon.vb se otevře v Návrháři pásu karet a zobrazí výchozí kartu a skupinu.
V Návrháři pásu karet klikněte na skupinu group1 .
V okně Vlastnosti změňte vlastnost Popisek pro group1 na Přidat ovládací prvky.
Na kartě Ovládací prvky pásu karet Office na panelu nástrojů přetáhněte ovládací prvek CheckBox na skupinu 1.
Kliknutím na CheckBox1 ho vyberte.
V okně Vlastnosti změňte následující vlastnosti.
Vlastnost Hodnota Název addButtonCheckBox Popisek Tlačítko Přidat Přidejte druhé zaškrtávací políčko do skupiny 1 a změňte následující vlastnosti.
Vlastnost Hodnota Název addRichTextCheckBox Popisek Přidání ovládacího prvku RTF V Návrháři pásu karet poklikejte na tlačítko Přidat.
Obslužná rutina Click události zaškrtávacího políčka Přidat tlačítko se otevře v Editoru kódu.
Vraťte se do Návrháře pásu karet a poklikejte na Přidat ovládací prvek RTF.
Obslužná rutina Click události ovládacího prvku RtF se otevře v Editoru kódu.
Později v tomto názorném postupu přidáte do těchto obslužných rutin událostí kód pro přidání a odebrání ovládacích prvků v aktivním dokumentu.
Přidání a odebrání ovládacích prvků v aktivním dokumentu
V kódu doplňku VSTO musíte před přidáním ovládacího prvku převést aktivní dokument na Documentpoložku hostitele. V řešeních Office se spravované ovládací prvky dají přidat jenom do hostitelských položek, které fungují jako kontejnery pro ovládací prvky. V projektech doplňků VSTO je možné vytvářet položky hostitele za běhu pomocí GetVstoObject
metody.
Přidejte metody do ThisAddIn
třídy, kterou lze volat pro přidání nebo odebrání Button aktivního dokumentu nebo RichTextContentControl do aktivního dokumentu. Později v tomto názorném postupu budete tyto metody volat z Click obslužných rutin událostí zaškrtávacích políček na pásu karet.
Přidání a odebrání ovládacích prvků v aktivním dokumentu
V Průzkumník řešení poklikáním na ThisAddIn.cs nebo ThisAddIn.vb otevřete soubor v Editoru kódu.
Do třídy
ThisAddIn
přidejte následující kód. Tento kód deklaruje Button a RichTextContentControl objekty představující ovládací prvky, které budou přidány do dokumentu.Do třídy přidejte následující metodu
ThisAddIn
. Když uživatel klikne na zaškrtávací políčko Přidat tlačítko na pásu karet, tato metoda přidá Button do aktuálního výběru dokumentu, pokud je zaškrtnuté políčko, nebo odebere Button , pokud je políčko nezaškrtnuto.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); } }
Do třídy přidejte následující metodu
ThisAddIn
. Když uživatel klikne na zaškrtávací políčko Přidat ovládací prvek RTF na pásu karet, tato metoda přidá RichTextContentControl do aktuálního výběru dokumentu, pokud je zaškrtnuté políčko nebo odebere RichTextContentControl , pokud je políčko nezaškrtnuto.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í ovládacího prvku Tlačítko při uložení dokumentu
model Windows Forms ovládací prvky se při uložení a zavření dokumentu neuchovávají. Obálka technologie ActiveX pro každý ovládací prvek však zůstane v dokumentu a ohraničení tohoto obálky můžou koncoví uživatelé vidět při opětovném otevření dokumentu. Dynamicky vytvořené ovládací prvky model Windows Forms v doplňkech VSTO můžete vyčistit několika způsoby. V tomto názorném postupu programově odeberete Button ovládací prvek při uložení dokumentu.
Odebrání ovládacího prvku Tlačítko při uložení dokumentu
Do souboru kódu ThisAddIn.cs nebo ThisAddIn.vb přidejte do třídy následující metodu
ThisAddIn
. Tato metoda je obslužná rutina události události DocumentBeforeSave . Pokud má uložený dokument přidruženou Document položku hostitele, obslužná rutina události získá položku hostitele a odebere Button ovládací prvek, pokud existuje.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; } } }
V jazyce C# přidejte do
ThisAddIn_Startup
obslužné rutiny události následující kód. Tento kód je vyžadován v jazyce C# pro připojeníApplication_DocumentBeforeSave
obslužné rutiny DocumentBeforeSave události k události.this.Application.DocumentBeforeSave += new Word.ApplicationEvents4_DocumentBeforeSaveEventHandler( Application_DocumentBeforeSave);
Přidání a odebrání ovládacích prvků, když uživatel klikne na zaškrtávací políčka na pásu karet
Nakonec upravte Click obslužné rutiny událostí políček, které jste přidali na pás karet, a přidejte nebo odeberte ovládací prvky v dokumentu.
Přidání nebo odebrání ovládacích prvků, když uživatel klikne na zaškrtávací políčka na pásu karet
V souboru kódu MyRibbon.cs nebo MyRibbon.vb nahraďte vygenerované obslužné
addButtonCheckBox_Click
rutiny událostíaddRichTextCheckBox_Click
následujícím kódem. Tento kód předefinuje tyto obslužné rutiny událostí, aby volalToggleButtonOnDocument
metody,ToggleRichTextControlOnDocument
které jste přidali doThisAddIn
třídy dříve v tomto návodu.
Testování řešení
Přidejte ovládací prvky do dokumentu tak, že je vyberete z vlastní karty na pásu karet. Když dokument uložíte, Button ovládací prvek se odebere.
K otestování řešení.
Stisknutím klávesy F5 spusťte projekt.
V aktivním dokumentu stiskněte několikrát klávesu Enter a přidejte do dokumentu nové prázdné odstavce.
Vyberte první odstavec.
Klikněte na kartu Doplňky .
Ve skupině Přidat ovládací prvky klikněte na tlačítko Přidat.
V prvním odstavci se zobrazí tlačítko.
Vyberte poslední odstavec.
Ve skupině Přidat ovládací prvky klepněte na tlačítko Přidat ovládací prvek RTF.
Do posledního odstavce se přidá ovládací prvek obsahu ve formátu RTF.
Uložte dokument.
Tlačítko se odebere z dokumentu.
Další kroky
Další informace o ovládacích prvcích v doplňkech VSTO najdete v těchto tématech:
Ukázku, která ukazuje, jak přidat do dokumentu mnoho dalších typů ovládacích prvků za běhu a znovu vytvořit ovládací prvky při opětovném otevření dokumentu, najdete v ukázce vývoje a názorných postupy doplňku Wordu.
Návod, který ukazuje, jak přidat ovládací prvky do listu pomocí doplňku VSTO pro Excel, naleznete v tématu Návod: Přidání ovládacích prvků do listu za běhu v projektu doplňku VSTO.
Související obsah
- Řešení wordových aplikací
- Přidání ovládacích prvků do dokumentů Office za běhu
- Zachování dynamických ovládacích prvků v dokumentech Office
- Postupy: Přidání ovládacích prvků model Windows Forms do dokumentů Office
- Postupy: Přidání ovládacích prvků obsahu do wordových dokumentů
- Rozšíření wordových dokumentů a excelových sešitů v doplňcích VSTO za běhu