Typy starších ActiveX (Forms 2.0) ovládacích prvků
Legacy ActiveX (Forms 2.0) typy ovládacích prvků
Práce s OLE objekty a vloženým obsahem popisuje, jak získat přístup k vloženému ovládacímu prvku Microsoft Forms 2.0 ActiveX prostřednictvím OleFormat.OleControl a přetypovat jej na abstraktní Forms2OleControl základní třídu. Aspose.Words FOSS pro .NET také poskytuje pět silně typovaných podtříd pro konkrétní typy ovládacích prvků, které Word podporuje – CheckBoxControl, OptionButtonControl, TextBoxControl, CommandButtonControl, a MorphDataControl – každá v Aspose.Words.Drawing.Ole namespace, přidání jednoho člena specifického pro ovládací prvek nad vlastnosti Forms2OleControl již poskytuje (Caption, Value, Enabled, Type, GroupName, ForeColor, BackColor, Width, Height, Name, ChildNodes).
CheckBoxControl a OptionButtonControl
CheckBoxControl rozšiřuje MorphDataControl a přidává Checked (a bool) pro stav zapnutí/vypnutí ovládacího prvku. OptionButtonControl také rozšiřuje MorphDataControl a přidává Selected (a bool) – používá se pro sadu navzájem se vylučujících volitelných tlačítek, která sdílí stejný GroupName.
TextBoxControl
TextBoxControl rozšiřuje MorphDataControl a přidává Text (a string), zobrazovaný a editovatelný text ovládacího prvku.
CommandButtonControl
CommandButtonControl rozšiřuje Forms2OleControl přímo (ne MorphDataControl) a má vlastní konstruktor. Reprezentuje tlačítko, které spustí makro po kliknutí ve Wordu, přičemž popisek tlačítka je zpřístupněn prostřednictvím zděděné vlastnosti Caption.
MorphDataControl: sdílená základna pro ovládací prvky zadávání dat
MorphDataControl je agregátní základ pro šest souvisejících typů ovládacích prvků – zaškrtávací políčko, rozbalovací seznam, seznam, volitelný přepínač, textové pole a přepínací tlačítko. CheckBoxControl, OptionButtonControl a TextBoxControl každý rozšiřují tento základ, zdědí jeho členy a přidají si jednu vlastnost specifickou pro svůj typ.
Tipy a osvědčené postupy
- Přečtěte
Forms2OleControl.Type(hodnotaForms2OleControlType), abyste identifikovali ovládací prvek před jeho přetypováním na některou ze specifických podtříd – ne každýForms2OleControlje jednou z pěti silně typovaných podtříd zde popsaných. - Použijte
GroupNamek přiřazení několika instancíOptionButtonControldo jedné navzájem se vylučující sady, což odpovídá tomu, jak Word seskupuje volitelné tlačítka. - Získejte přístup k vnořeným ovládacím prvkům uvnitř rámce nebo vícestránkového kontejneru prostřednictvím zděděného
ChildNodes(aForms2OleControlCollection), bez ohledu na to, jakou podtřídu kontejner představuje.
Běžné problémy
| Problém | Příčina | Oprava |
|---|---|---|
Přetypování Forms2OleControl na CheckBoxControl vyvolá InvalidCastException | Ovládací prvek je jiného typu Forms 2.0 (například TextBoxControl nebo OptionButtonControl) | Zkontrolujte Forms2OleControl.Type před přetypováním na konkrétní podtřídu |
OptionButtonControl.Selected se nechová jako vzájemně výlučný vůči sourozeneckým ovládacím prvkům | Ovládací prvky nesdílejí stejný GroupName | Nastavte stejnou hodnotu GroupName na každý OptionButtonControl v sadě |
CommandButtonControl.Caption je prázdný | Popisek tlačítka pochází z děděného Forms2OleControl.Caption, nikoli z CommandButtonControl-specifické vlastnosti | Čtěte Caption, ne neexistující člen pouze pro CommandButtonControl |
FAQ
Jak zjistím, kterou silně typovanou třídu ovládacího prvku ve skutečnosti představuje Forms2OleControl?
Přečtěte si jeho Type vlastnost (Forms2OleControlType) nebo zkuste přetypovat na konkrétní podtřídu, kterou očekáváte, například CheckBoxControl nebo TextBoxControl.
Jaký je rozdíl mezi MorphDataControl a Forms2OleControl?
Forms2OleControl je abstraktní základ pro každý ovládací prvek Forms 2.0. MorphDataControl je konkrétnější abstraktní základ, který sám rozšiřuje Forms2OleControl, sdílený zaškrtávacími políčky, rozbalovacími seznamy, seznamovými poli, volbními tlačítky, textovými poli a přepínacími tlačítky.
Jak mohu přečíst stav zaškrtnutí u ovládacího prvku checkbox?
Přetypujte Forms2OleControl na CheckBoxControl a přečtěte si jeho Checked vlastnost.
Rozšiřuje CommandButtonControl MorphDataControl jako ostatní?
Ne – CommandButtonControl rozšiřuje Forms2OleControl přímo, protože tlačítko příkazu není ovládací prvek pro zadávání dat.
API Reference Souhrn
| Třída | Popis: |
|---|---|
MorphDataControl | Abstraktní základ pro ovládací prvky checkbox, combo box, list box, option button, text box a toggle button |
CheckBoxControl | Ovládací prvek checkbox; rozšiřuje MorphDataControl; přidává Checked |
OptionButtonControl | Ovládací prvek option button; rozšiřuje MorphDataControl; přidává Selected |
TextBoxControl | Ovládací prvek textového pole; rozšiřuje MorphDataControl; přidává Text |
CommandButtonControl | Ovládací prvek příkazového tlačítka; rozšiřuje Forms2OleControl přímo |