Sdílet prostřednictvím


Přidání ovládacích prvků do dokumentů sady Office v době spuštění

Můžete přidat ovládací prvky dokumentu Microsoft Office Word a Microsoft Office Excel sešit v době běhu.Je možné odebrat v době běhu.Přidat nebo odebrat za běhu ovládací prvky nazývají dynamické ovládací prvky.

Platí pro: Informace v tomto tématu se vztahují na projekty na úrovni dokumentu i na úrovni aplikace v následujících aplikacích: Excel 2013 a Excel 2010, Word 2013 a Word 2010. Další informace naleznete v tématu Funkce aplikace Office a typ projektu.

Toto téma popisuje následující:

  • Správa ovládací prvky za běhu pomocí kolekce ovládacích.

  • Přidání ovládacích prvků hostitele dokumenty.

  • Přidání ovládacích prvků model Windows Forms dokumenty.

odkaz na video Související video ukázku naleznete v tématu jak udělat I: přidat prvky dokumentu povrch běhu?.

Správa ovládací prvky za běhu pomocí kolekce ovládacího prvku

Přidat, načíst nebo odebrat ovládací prvky za běhu, použijte pomocné metody Microsoft.Office.Tools.Excel.ControlCollection a Microsoft.Office.Tools.Word.ControlCollection objekty.

Přístup k těmto objektům závisí na typu projektu, který vyvíjíte:

x97a5x3s.collapse_all(cs-cz,VS.110).gifPřidání ovládacích prvků

Microsoft.Office.Tools.Excel.ControlCollection a Microsoft.Office.Tools.Word.ControlCollection typy zahrnují pomocné metody, které můžete přidat ovládací prvky hostitel a společné model Windows Forms dokumenty a listy.Každý název metody má formát Addovládací prvek třídy, kde třídy ovládacího prvku je název třídy ovládacího prvku, který chcete přidat. Například přidat NamedRange dokumentu, použijte ovládací prvek AddNamedRange metoda.

Následující příklad kódu přidává NamedRange na Sheet1 v projektu úroveň dokument pro aplikaci Excel.

Dim range1 As Excel.Range = Globals.Sheet1.Range("A1", "D5")
Dim namedRange1 As Microsoft.Office.Tools.Excel.NamedRange = _
    Globals.Sheet1.Controls.AddNamedRange(range1, "ChartSource")
Excel.Range range1 = Globals.Sheet1.Range["A1", "D5"];
Microsoft.Office.Tools.Excel.NamedRange namedRange1 =
    Globals.Sheet1.Controls.AddNamedRange(range1, "ChartSource");

x97a5x3s.collapse_all(cs-cz,VS.110).gifPřístup a odstranění ovládacích prvků

Můžete použít Controls vlastnost Microsoft.Office.Tools.Excel.Worksheet nebo Microsoft.Office.Tools.Word.Document iterovat přes ovládací prvky v dokumentu, včetně ovládacích prvků, které jste přidali v době návrhu.Ovládací prvky, které přidáte v době návrhu se také nazývají statické ovládací prvky.

Dynamické ovládací prvky můžete odebrat pomocí volání Delete metodu ovládacího prvku nebo voláním Remove metoda každého Controls kolekce.Následující příklad kódu používá Remove způsob odebrání NamedRange z Sheet1 v projektu úroveň dokument pro aplikaci Excel.

Globals.Sheet1.Controls.Remove("ChartSource")
Globals.Sheet1.Controls.Remove("ChartSource");

Nelze odebrat statické ovládací prvky za běhu.Pokud se pokusíte použít Delete nebo Remove způsob odebrání statického ovládacího prvku CannotRemoveControlException bude vyvolána výjimka.

[!POZNÁMKA]

Programové odebrání ovládacích prvků Shutdown obslužné rutiny události dokumentu.Prvky uživatelského rozhraní dokumentu již nejsou k dispozici při Shutdown je vyvolána událost.Pokud chcete před zavřením dokumentu odebrat ovládací prvky přidat kód do obslužné rutiny události pro jiné události, jako Document.BeforeClose nebo Document.BeforeSave pro aplikaci Word, nebo Workbook.BeforeClose, nebo Workbook.BeforeSave pro Excel.

Přidání hostitele ovládací prvky do dokumentů

Při programově přidat ovládací prvky hostitel dokumenty, musíte zadat název, který jednoznačně identifikuje ovládací prvek a musíte určit, kam chcete přidat ovládací prvek v dokumentu.Konkrétní pokyny naleznete v následujících tématech:

Další informace o ovládacích prvcích hostitele naleznete v Přehled ovládací prvky hostitel a Host položky.

Po uložení dokumentu a zavřeny všechny hostitele dynamicky vytvářených ovládacích prvků jsou odpojeni od jejich události a dojít ke ztrátě jejich funkce datové vazby.Přidejte kód k řešení znovu vytvořit ovládací prvky hostitel při opětovném otevření dokumentu.Další informace naleznete v tématu Trvalý dynamické ovládací prvky v dokumentech sady Office.

[!POZNÁMKA]

Pomocné metody nejsou hostitelským následující ovládací prvky, protože tyto ovládací prvky nelze programově přidat dokumenty: XmlMappedRange, XMLNode, a XMLNodes.

Přidání ovládacích prvků model Windows Forms dokumenty

Pokud programově přidat ovládací prvek model Windows Forms dokumentu musí poskytnout umístění ovládacího prvku a název, který jednoznačně identifikuje ovládací prvek.Visual Studio Tools for Office runtime Poskytuje podpůrné metody pro každý ovládací prvek.Tyto metody jsou přetížené, takže můžete předat rozsah nebo konkrétní souřadnice umístění ovládacího prvku.

Po uložení dokumentu a pak uzavřen dynamicky vytvářených ovládacích prvků model Windows Forms jsou odebrány z dokumentu.Přidejte kód k řešení znovu vytvořit ovládací prvky při opětovném otevření dokumentu.Pokud vytvoříte dynamické ovládací prvky model Windows Forms pomocí doplněk aplikační úrovni, jsou ponechány obálky ActiveX ovládací prvky v dokumentu.Další informace naleznete v tématu Trvalý dynamické ovládací prvky v dokumentech sady Office.

[!POZNÁMKA]

Model Windows Forms ovládací prvky nelze programově přidat chráněné dokumenty.Pokud programově Odemknout dokument aplikace Word nebo sešit Excel přidat ovládací prvek musíte napsat další kód odebrat ovládací prvek ActiveX obálkové při zavření dokumentu.Ovládací prvek ActiveX obálkové není automaticky odstraněn z chráněné dokumenty.

x97a5x3s.collapse_all(cs-cz,VS.110).gifPřidání vlastních ovládacích prvků

Pokud chcete přidat System.Windows.Forms.Control není podporován k dispozici pomocné metody, například vlastní uživatelský ovládací prvek, použijte následující metody:

Přidání ovládacího prvku, předat System.Windows.Forms.Control, umístění ovládacího prvku a název, který jednoznačně identifikuje ovládací prvek AddControl metoda.AddControl Metoda vrátí objekt, který definuje způsob interakce ovládacího prvku s listu nebo dokumentu.AddControl Metoda vrátí Microsoft.Office.Tools.Excel.ControlSite (pro Excel) nebo Microsoft.Office.Tools.Word.ControlSite objekt (Word).

Následující příklad kódu demonstruje použití AddControl(Control, Range, String) metoda dynamicky přidávat vlastní uživatelský ovládací prvek na listu aplikace Excel projekt úrovni dokumentu.V tomto příkladu je uživatelský ovládací prvek s názvem UserControl1a Range s názvem range1. Použít tento příklad, spusťte jej z Sheetn třídy v projektu.

Dim customControl As New UserControl1()

Dim dynamicControl As Microsoft.Office.Tools.Excel.ControlSite = _
    Me.Controls.AddControl(customControl, range1, "dynamic")
UserControl1 customControl = new UserControl1();

Microsoft.Office.Tools.Excel.ControlSite dynamicControl =
    this.Controls.AddControl(customControl, range1, "dynamic");

x97a5x3s.collapse_all(cs-cz,VS.110).gifPomocí členů vlastní ovládací prvky

Po použití jedné z AddControl metody pro přidání ovládacího prvku do listu nebo dokumentu, můžete nyní mít dva různé objekty ovládacího prvku:

  • System.Windows.Forms.Control , Která představuje vlastní ovládací prvek.

  • ControlSite, OLEObject, Nebo OLEControl objekt, který představuje ovládací prvek po byl přidán do listu nebo dokumentu.

Mnoho vlastnosti a metody jsou sdíleny mezi těmito ovládacími prvky.Je důležité přistupovat tyto členy prostřednictvím příslušného ovládacího prvku:

  • Přístup k členům, které patří pouze vlastní ovládací prvek, použijte System.Windows.Forms.Control.

  • Přístup ke členům sdílené ovládacími prvky, ControlSite, OLEObject, nebo OLEControl objektu.

Pokud přístup sdíleného člena z System.Windows.Forms.Control, pravděpodobně nezdaří bez upozornění nebo oznámení nebo jeho výsledky neplatný.Vždy použít metody nebo vlastnosti ControlSite, OLEObject, nebo OLEControl objekt, pokud nejsou metody nebo vlastnosti, které jsou potřebné k dispozici; pouze potom by se odkazovat System.Windows.Forms.Control.

Například i ControlSite třídy a System.Windows.Forms.Control třídy Top vlastnost.Získat nebo nastavit vzdálenost mezi horní ovládací prvek a začátek dokumentu, použijte Top vlastnost ControlSite, nikoli Top vlastnost System.Windows.Forms.Control.

' Property is set in relation to the document.
dynamicControl.Top = 100

' Property is set in relation to the container control.
customControl.Top = 100
// Property is set in relation to the document.
dynamicControl.Top = 100;

// Property is set in relation to the container control.
customControl.Top = 100;

Viz také

Úkoly

Jak: přidání ovládacích prvků objektu ListObject listy

Jak: přidání ovládacích prvků NamedRange listy

Jak: přidání ovládacích prvků grafu listy

Jak: přidání ovládacích prvků obsahu v dokumentech aplikace Word

Postup: do dokumentů aplikace Word přidat záložku ovládací prvky

Jak: přidání ovládacích prvků model Windows Forms do dokumentů sady Office

Koncepty

Trvalý dynamické ovládací prvky v dokumentech sady Office

Ovládací prvky model Windows Forms na přehled dokumentů sady Office

Další zdroje

Ovládací prvky v dokumentech sady Office