Přidání ovládacích prvků do dokumentů Office za běhu
Ovládací prvky můžete přidat do systém Microsoft Office wordového dokumentu a systém Microsoft Office excelového sešitu za běhu. Můžete je také odebrat za běhu. Ovládací prvky, které přidáte nebo odeberete za běhu, se nazývají dynamické ovládací prvky.
Platí pro: Informace v tomto tématu platí pro projekty na úrovni dokumentu a projekty doplňků VSTO pro Excel a Word. Další informace naleznete v tématu Funkce dostupné aplikace Office lication a typu projektu.
Toto téma popisuje následující:
Správa ovládacích prvků za běhu pomocí kolekcí ovládacích prvků
Pokud chcete přidat, získat nebo odebrat ovládací prvky za běhu, použijte pomocné metody ControlCollection a ControlCollection objekty.
Způsob přístupu k těmto objektům závisí na typu projektu, který vyvíjíte:
V projektu na úrovni dokumentu pro Excel použijte Controls vlastnost
Sheet1
,Sheet2
aSheet3
třídy. Další informace o těchto třídách naleznete v tématu Položka hostitele listu.V projektu na úrovni dokumentu pro Word použijte Controls vlastnost
ThisDocument
třídy. Další informace o této třídě naleznete v tématu Položka hostitele dokumentu.V projektu doplňku VSTO pro Excel nebo Word použijte
Controls
vlastnost Worksheet vygenerovaného Document za běhu. Další informace o generování těchto objektů za běhu naleznete v tématu Rozšíření wordových dokumentů a excelových sešitů v doplňkech VSTO za běhu.
Přidání ovládacích prvků
ControlCollection Mezi tyto ControlCollection typy patří pomocné metody, které můžete použít k přidání hostitelských ovládacích prvků a běžných ovládacích prvků model Windows Forms do dokumentů a listů. Každý název metody má třídu ovládacích prvků formátuAdd
, kde třída ovládacího prvku je název třídy ovládacího prvku, který chcete přidat. Pokud chcete například přidat NamedRange ovládací prvek do dokumentu, použijte metodu AddNamedRange .
Následující příklad kódu přidá NamedRange do Sheet1
projektu na úrovni dokumentu pro Excel.
Excel.Range range1 = Globals.Sheet1.Range["A1", "D5"];
Microsoft.Office.Tools.Excel.NamedRange namedRange1 =
Globals.Sheet1.Controls.AddNamedRange(range1, "ChartSource");
Přístup k ovládacím prvkům a jejich odstranění
Vlastnost objektu Controls
Worksheet a nebo Document můžete iterovat všemi ovládacími 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é označují jako statické ovládací prvky.
Dynamické ovládací prvky můžete odebrat voláním Delete
metody ovládacího prvku nebo voláním Remove
metody každé kolekce Controls. Následující příklad kódu používá metodu Remove NamedRange k odebrání z Sheet1
projektu na úrovni dokumentu pro Excel.
Statické ovládací prvky nelze odebrat za běhu. Pokud se pokusíte použít metodu Delete
nebo Remove
odebrat statický ovládací prvek, CannotRemoveControlException vyvolá se vyvolá.
Poznámka:
Ovládací prvky v Shutdown
obslužné rutině události dokumentu neodebídejte programově. Prvky uživatelského rozhraní dokumentu už nejsou při vyvolání události k dispozici Shutdown
. Pokud chcete ovládací prvky před ukončením dokumentu odebrat, přidejte kód do obslužné rutiny události pro jinou událost, například BeforeClose pro BeforeSave Word nebo BeforeClosenebo BeforeSave pro Excel.
Přidání hostitelských ovládacích prvků do dokumentů
Když do dokumentů přidáte ovládací prvky hostitele prostřednictvím kódu programu, musíte zadat název, který ovládací prvek jednoznačně identifikuje, a musíte určit, kam chcete ovládací prvek přidat do dokumentu. Konkrétní pokyny najdete v následujících tématech:
Postupy: Přidání ovládacích prvků obsahu do wordových dokumentů
Postupy: Přidání ovládacích prvků záložky do wordových dokumentů
Další informace o hostitelských ovládacích prvcích naleznete v tématu Přehled položek hostitele a hostitelských ovládacích prvků.
Při uložení a zavření dokumentu se všechny dynamicky vytvořené hostitelské ovládací prvky odpojí od událostí a ztratí funkce datové vazby. Do řešení můžete přidat kód pro opětovné vytvoření hostitelských ovládacích prvků při opětovném otevření dokumentu. Další informace naleznete v tématu Zachování dynamických ovládacích prvků v dokumentech Office.
Poznámka:
Pomocné metody nejsou k dispozici pro následující ovládací prvky hostitele, protože tyto ovládací prvky nelze přidat programově do dokumentů: XmlMappedRange, XMLNodea XMLNodes.
Přidání ovládacích prvků model Windows Forms do dokumentů
Když do dokumentu přidáte ovládací prvek model Windows Forms programově, musíte zadat umístění ovládacího prvku a název, který ovládací prvek jednoznačně identifikuje. Visual Studio Tools for Office runtime poskytuje pomocné metody pro každý ovládací prvek. Tyto metody jsou přetížené, takže můžete předat buď rozsah, nebo konkrétní souřadnice pro umístění ovládacího prvku.
Při uložení a zavření dokumentu se z dokumentu odeberou všechny dynamicky vytvořené ovládací prvky model Windows Forms. Do řešení můžete přidat kód pro opětovné vytvoření ovládacích prvků při opětovném otevření dokumentu. Pokud vytváříte dynamické model Windows Forms ovládací prvky pomocí doplňku VSTO, zůstanou v dokumentu technologie ActiveX obálky ovládacích prvků. Další informace naleznete v tématu Zachování dynamických ovládacích prvků v dokumentech Office.
Poznámka:
model Windows Forms ovládací prvky nelze do chráněných dokumentů přidávat prostřednictvím kódu programu. Pokud programově zrušíte ochranu wordového dokumentu nebo excelového listu a přidáte ovládací prvek, musíte napsat další kód, který odebere obálku technologie ActiveX ovládacího prvku při zavření dokumentu. Obálka technologie ActiveX ovládacího prvku se automaticky neodstraní z chráněných dokumentů.
Přidání vlastních ovládacích prvků
Pokud chcete přidat metodu Control , která není podporována dostupnými pomocnými metodami, jako je například vlastní uživatelský ovládací prvek, použijte následující metody:
Pro Excel použijte jednu z AddControl metod objektu ControlCollection .
Ve Wordu AddControl použijte jednu z metod objektu ControlCollection .
Chcete-li přidat ovládací prvek, předejte Control, umístění ovládacího prvku a název, který jednoznačně identifikuje ovládací prvek do
AddControl
metody. MetodaAddControl
vrátí objekt, který definuje, jak ovládací prvek komunikuje s listem nebo dokumentem. MetodaAddControl
vrátí ControlSite (pro Excel) nebo ControlSite objekt (pro Word).Následující příklad kódu ukazuje, jak použít metodu AddControl k dynamickému přidání vlastního uživatelského ovládacího prvku do listu v projektu aplikace Excel na úrovni dokumentu. V tomto příkladu je uživatelský ovládací prvek pojmenován
UserControl1
a Range má názevrange1
. Pokud chcete tento příklad použít, spusťte hoSheet
z n třídy v projektu.
Použití členů vlastních ovládacích prvků
Po použití jedné z AddControl
metod přidání ovládacího prvku do listu nebo dokumentu teď máte dva různé řídicí objekty:
Představuje Control vlastní ovládací prvek.
,
ControlSite
OLEObject
neboOLEControl
objekt, který představuje ovládací prvek po jeho přidání do listu nebo dokumentu.Mezi těmito ovládacími prvky se sdílí mnoho vlastností a metod. Je důležité, abyste k těmto členům přistupovali prostřednictvím příslušného ovládacího prvku:
Chcete-li získat přístup k členům, které patří pouze do vlastního ovládacího prvku, použijte tlačítko Control.
Chcete-li získat přístup k členům sdíleným ovládacími prvky, použijte
ControlSite
objekt ,OLEObject
neboOLEControl
objekt.Pokud ke sdílenému členu přistupujete ze sdíleného člena Control, může selhat bez upozornění nebo oznámení nebo může vést k neplatným výsledkům. Vždy používejte metody nebo vlastnosti objektu
ControlSite
,OLEObject
pokudOLEControl
není metoda nebo vlastnost potřebná k dispozici; pouze pak byste měli odkazovat na Control.Například třída ControlSite i Control třída mají
Top
vlastnost. Chcete-li získat nebo nastavit vzdálenost mezi horní částí ovládacího prvku a horní částí dokumentu, použijte Top vlastnost ControlSite, nikoli Top vlastnost Control.
Související obsah
- Ovládací prvky v dokumentech Office
- Zachování dynamických ovládacích prvků v dokumentech Office
- Postupy: Přidání ovládacích prvků ListObject do listů
- Postupy: Přidání ovládacích prvků NamedRange do listů
- Postupy: Přidání ovládacích prvků grafů do listů
- Postupy: Přidání ovládacích prvků obsahu do wordových dokumentů
- Postupy: Přidání ovládacích prvků záložky do wordových dokumentů
- Přehled ovládacích prvků model Windows Forms v dokumentech Office
- Postupy: Přidání ovládacích prvků model Windows Forms do dokumentů Office