Starsze typy kontrolek ActiveX (Forms 2.0)
Starsze ActiveX (Forms 2.0) Typy kontrolek
Praca z obiektami OLE i osadzonymi treściami opisuje, jak uzyskać dostęp do osadzonej kontrolki Microsoft Forms 2.0 ActiveX poprzez OleFormat.OleControl i rzutować ją na abstrakcyjną Forms2OleControl klasę bazową. Aspose.Words FOSS dla .NET udostępnia również pięć silnie typowanych podklas dla konkretnych rodzajów kontrolek obsługiwanych przez Word — CheckBoxControl, OptionButtonControl, TextBoxControl, CommandButtonControl, oraz MorphDataControl — każdy w Aspose.Words.Drawing.Ole przestrzeń nazw, dodając jeden element specyficzny dla kontrolki ponad właściwościami Forms2OleControl już zapewnia (Caption, Value, Enabled, Type, GroupName, ForeColor, BackColor, Width, Height, Name, ChildNodes).
CheckBoxControl i OptionButtonControl
CheckBoxControl rozszerza MorphDataControl i dodaje Checked (jako bool) dla stanu włącz/wyłącz kontrolki. OptionButtonControl również rozszerza MorphDataControl i dodaje Selected (jako bool) – używane do zestawu wzajemnie wykluczających się przycisków opcji, które współdzielą ten sam GroupName.
TextBoxControl
TextBoxControl rozszerza MorphDataControl i dodaje Text (jako string), wyświetlany i edytowalny tekst kontrolki.
CommandButtonControl
CommandButtonControl rozszerza Forms2OleControl bezpośrednio (nie MorphDataControl) i posiada własny konstruktor. Reprezentuje przycisk, który uruchamia makro po kliknięciu w Wordzie, a jego etykieta przycisku jest udostępniona poprzez odziedziczoną właściwość Caption.
MorphDataControl: wspólna baza dla kontrolek wprowadzania danych
MorphDataControl jest bazą zbiorczą dla sześciu powiązanych rodzajów kontrolek — checkbox, combo box, list box, option button, text box i toggle button. CheckBoxControl, OptionButtonControl i TextBoxControl każdy z nich rozszerza ją, dziedzicząc jej członków i dodając własną właściwość specyficzną dla typu.
Wskazówki i najlepsze praktyki
- Odczytaj
Forms2OleControl.Type(wartośćForms2OleControlType), aby zidentyfikować kontrolkę przed rzutowaniem jej na jedną ze specyficznych podklas — nie każdyForms2OleControljest jedną z pięciu silnie typowanych podklas opisanych tutaj. - Użyj
GroupName, aby powiązać kilka instancjiOptionButtonControlw jeden wzajemnie wykluczający się zestaw, odzwierciedlając sposób, w jaki Word grupuje przyciski opcji. - Dostęp do zagnieżdżonych kontrolek wewnątrz ramki lub wielostronicowego kontenera uzyskaj poprzez odziedziczony
ChildNodes(aForms2OleControlCollection), niezależnie od tego, jaką podklasą jest kontener.
Typowe problemy
| Problem | Przyczyna | Poprawka |
|---|---|---|
Rzutowanie Forms2OleControl na CheckBoxControl powoduje InvalidCastException | Kontrolka jest innego rodzaju kontrolki Forms 2.0 (na przykład TextBoxControl lub OptionButtonControl) | Sprawdź Forms2OleControl.Type przed rzutowaniem na określoną podklasę |
OptionButtonControl.Selected nie zachowuje się jako wzajemnie wykluczający się względem kontrolek siostrzanych | Kontrolki nie współdzielą tego samego GroupName | Ustaw taką samą wartość GroupName na każdym OptionButtonControl w zestawie |
CommandButtonControl.Caption jest pusty | Etykieta przycisku pochodzi z odziedziczonego Forms2OleControl.Caption, a nie z właściwości specyficznej dla CommandButtonControl | Odczytaj Caption, a nie nieistniejącego członka dostępnego wyłącznie dla CommandButtonControl |
FAQ
Jak mogę dowiedzieć się, jaką konkretną klasę kontrolki silnie typowaną jest właściwie Forms2OleControl?
Odczytaj jej właściwość Type (Forms2OleControlType) lub spróbuj rzutować na oczekiwaną konkretną podklasę, taką jak CheckBoxControl lub TextBoxControl.
Jaka jest różnica między MorphDataControl a Forms2OleControl?
Forms2OleControl jest abstrakcyjną bazą dla każdej kontrolki Forms 2.0. MorphDataControl jest bardziej specyficzną abstrakcyjną bazą, rozszerzającą Forms2OleControl, wspólną dla rodzajów kontrolek: checkbox, combo box, list box, option button, text box i toggle button.
Jak odczytać stan zaznaczenia kontrolki checkbox?
Rzutuj Forms2OleControl na CheckBoxControl i odczytaj jego właściwość Checked.
Czy CommandButtonControl rozszerza MorphDataControl tak jak pozostałe?
Nie – CommandButtonControl rozszerza Forms2OleControl bezpośrednio, ponieważ przycisk polecenia nie jest kontrolą wprowadzania danych.
API Reference Podsumowanie
| Klasa | Opis |
|---|---|
MorphDataControl | Abstrakcyjna baza dla kontrolek pola wyboru, pola kombi, listy, przycisku opcji, pola tekstowego i przycisku przełącznika |
CheckBoxControl | Kontrolka pola wyboru; rozszerza MorphDataControl; dodaje Checked |
OptionButtonControl | Kontrolka przycisku opcji; rozszerza MorphDataControl; dodaje Selected |
TextBoxControl | Kontrolka pola tekstowego; rozszerza MorphDataControl; dodaje Text |
CommandButtonControl | Kontrolka przycisku polecenia; rozszerza Forms2OleControl bezpośrednio |