Типи застарілих ActiveX (Forms 2.0) елементів керування
Застарілі ActiveX (Forms 2.0) типи елементів керування
Робота з OLE-об’єктами та вбудованим вмістом покриває, як отримати доступ до вбудованого керування Microsoft Forms 2.0 ActiveX через OleFormat.OleControl і привести його до абстрактного Forms2OleControl базового класу. Aspose.Words FOSS для .NET також надає п’ять суворо типізованих підкласів для конкретних типів керувань, які підтримує Word – CheckBoxControl, OptionButtonControl, TextBoxControl, CommandButtonControl, і MorphDataControl – кожен у Aspose.Words.Drawing.Ole простір імен, додавання одного специфічного для елемента управління члена поверх властивостей Forms2OleControl вже надає (Caption, Value, Enabled, Type, GroupName, ForeColor, BackColor, Width, Height, Name, ChildNodes).
CheckBoxControl і OptionButtonControl
CheckBoxControl розширює MorphDataControl і додає Checked ( bool) для стану увімкнено/вимкнено елемента керування. OptionButtonControl також розширює MorphDataControl і додає Selected ( bool) – використовується для набору взаємно виключних кнопок-опцій, які діляться одним GroupName.
TextBoxControl
TextBoxControl розширює MorphDataControl і додає Text ( string), відображений та редагований текст елемента керування.
CommandButtonControl
CommandButtonControl розширює Forms2OleControl безпосередньо (не MorphDataControl) і має власний конструктор. Він представляє кнопку, яка запускає макрос при натисканні в Word, причому підпис кнопки доступний через успадковану властивість Caption.
MorphDataControl: спільна база для елементів управління введенням даних
MorphDataControl є агрегатною базою для шести пов’язаних типів елементів управління — прапорець, комбінований список, список, перемикач-опція, текстове поле та кнопку-перемикач. CheckBoxControl, OptionButtonControl та TextBoxControl кожен розширює її, успадковуючи її члени та додаючи одну специфічну для типу властивість.
Поради та найкращі практики
- Прочитайте
Forms2OleControl.Type(значенняForms2OleControlType), щоб ідентифікувати елемент управління перед приведенням його до одного з конкретних підкласів — не коженForms2OleControlє одним із п’яти строго типізованих підкласів, розглянутих тут. - Використовуйте
GroupName, щоб об’єднати кілька екземплярівOptionButtonControlв один взаємно виключний набір, відповідно до того, як Word групує кнопки-опції. - Доступайте до вкладених елементів управління всередині рамки або багатосторінкового контейнера через успадкований
ChildNodes(aForms2OleControlCollection), незалежно від того, яким підкласом є контейнер.
Типові проблеми
| Проблема | Причина | Виправлення |
|---|---|---|
Приведення Forms2OleControl до CheckBoxControl викликає InvalidCastException | Елемент управління належить до іншого типу Forms 2.0 (наприклад, TextBoxControl або OptionButtonControl) | Перевірте Forms2OleControl.Type перед приведенням до конкретного підкласу |
OptionButtonControl.Selected не працює як взаємовиключний з сусідніми елементами керування | Контролі не мають спільного GroupName | Встановіть однакове значення GroupName для кожного OptionButtonControl у наборі |
CommandButtonControl.Caption порожній | Підпис кнопки береться з успадкованого Forms2OleControl.Caption, а не зі специфічної для CommandButtonControl властивості | Читайте Caption, а не неіснуючий член, доступний лише у CommandButtonControl |
FAQ
Як я можу дізнатися, до якого строго типізованого класу керування належить Forms2OleControl?
Прочитайте його властивість Type (Forms2OleControlType) або спробуйте привести його до конкретного підкласу, який ви очікуєте, наприклад CheckBoxControl або TextBoxControl.
У чому різниця між MorphDataControl і Forms2OleControl?
Forms2OleControl — це абстрактна база для кожного керування Forms 2.0. MorphDataControl — більш специфічна абстрактна база, яка сама розширює Forms2OleControl, спільна для типів керувань: checkbox, combo box, list box, option button, text box та toggle button.
Як зчитати стан відмітки у елементі керування checkbox?
Приведіть Forms2OleControl до CheckBoxControl і прочитайте його властивість Checked.
Чи розширює CommandButtonControl MorphDataControl, як інші?
Ні – CommandButtonControl не розширює Forms2OleControl безпосередньо, оскільки кнопка команди не є елементом введення даних.
API Reference Підсумок
| Клас | Опис |
|---|---|
MorphDataControl | Абстрактна базова для елементів керування: checkbox, combo box, list box, option button, text box і toggle button |
CheckBoxControl | Контроль чекбокса; розширює MorphDataControl; додає Checked |
OptionButtonControl | Контроль кнопки опції; розширює MorphDataControl; додає Selected |
TextBoxControl | Контроль текстового поля; розширює MorphDataControl; додає Text |
CommandButtonControl | Контроль кнопки команди; розширює Forms2OleControl безпосередньо |