Tipos de control ActiveX heredado (Forms 2.0)
Tipos de control heredado ActiveX (Forms 2.0)
Trabajando con objetos OLE y contenido incrustado cubre cómo acceder a un control ActiveX de Microsoft Forms 2.0 incrustado a través de OleFormat.OleControl y convertirlo a la clase abstracta Forms2OleControl clase base. Aspose.Words FOSS para .NET también expone cinco subclases fuertemente tipadas para los tipos específicos de control que Word admite – CheckBoxControl, OptionButtonControl, TextBoxControl, CommandButtonControl, y MorphDataControl – cada una en el Aspose.Words.Drawing.Ole namespace, añadiendo un miembro específico del control encima de las propiedades Forms2OleControl ya proporciona (Caption, Value, Enabled, Type, GroupName, ForeColor, BackColor, Width, Height, Name, ChildNodes).
CheckBoxControl y OptionButtonControl
CheckBoxControl extiende MorphDataControl y añade Checked (un bool) para el estado de encendido/apagado del control. OptionButtonControl también extiende MorphDataControl y añade Selected (un bool) – usado para un conjunto de botones de opción mutuamente excluyentes que comparten el mismo GroupName.
TextBoxControl
TextBoxControl extiende MorphDataControl y añade Text (un string), el texto mostrado y editable del control.
CommandButtonControl
CommandButtonControl extiende Forms2OleControl directamente (no MorphDataControl) y tiene su propio constructor. Representa un botón que ejecuta una macro al hacer clic en Word, con la etiqueta del botón expuesta a través de la propiedad heredada Caption.
MorphDataControl: la Base Compartida para Controles de Entrada de Datos
MorphDataControl es una base agregada para seis tipos de controles relacionados – casilla de verificación, cuadro combinado, cuadro de lista, botón de opción, cuadro de texto y botón de alternar. CheckBoxControl, OptionButtonControl y TextBoxControl cada uno lo extienden, heredando sus miembros y añadiendo una propiedad específica de tipo propia.
Consejos y Mejores Prácticas
- Lea
Forms2OleControl.Type(un valorForms2OleControlType) para identificar un control antes de convertirlo a una de las subclases específicas – no cadaForms2OleControles una de las cinco subclases fuertemente tipadas cubiertas aquí. - Utilice
GroupNamepara asociar varias instancias deOptionButtonControlen un conjunto mutuamente excluyente, coincidiendo con la forma en que Word agrupa los botones de opción. - Acceda a los controles anidados dentro de un marco o contenedor multipágina mediante el
ChildNodesheredado (unForms2OleControlCollection), sin importar a qué subclase pertenezca el contenedor.
Problemas Comunes
| Problema | Causa | Corrección |
|---|---|---|
Convertir un Forms2OleControl a CheckBoxControl lanza un InvalidCastException | El control es de un tipo diferente de control Forms 2.0 (por ejemplo, un TextBoxControl o OptionButtonControl) | Verifique Forms2OleControl.Type antes de convertir a una subclase específica |
OptionButtonControl.Selected no se comporta como mutuamente excluyente con los controles hermanos | Los controles no comparten el mismo GroupName | Establezca el mismo valor de GroupName en cada OptionButtonControl del conjunto |
CommandButtonControl.Caption está vacío | El texto del botón proviene del Forms2OleControl.Caption heredado, no de una propiedad específica de CommandButtonControl | Lea Caption, no un miembro inexistente solo de CommandButtonControl |
FAQ
¿Cómo sé qué clase de control tipada fuertemente es realmente un Forms2OleControl?
Lea su propiedad Type (Forms2OleControlType) o intente un cast a la subclase específica que espera, como CheckBoxControl o TextBoxControl.
¿Cuál es la diferencia entre MorphDataControl y Forms2OleControl?
Forms2OleControl es la base abstracta para cada control de Forms 2.0. MorphDataControl es una base abstracta más específica, que a su vez extiende Forms2OleControl, compartida por los tipos de control de casilla de verificación, cuadro combinado, cuadro de lista, botón de opción, cuadro de texto y botón de alternancia.
¿Cómo leo el estado marcado de un control de casilla de verificación?
Haga cast del Forms2OleControl a CheckBoxControl y lea su propiedad Checked.
¿CommandButtonControl extiende MorphDataControl como los demás?
No – CommandButtonControl extiende Forms2OleControl directamente, ya que un botón de comando no es un control de entrada de datos.
API Reference Resumen
| Clase | Descripción |
|---|---|
MorphDataControl | Base abstracta para checkbox, combo box, list box, option button, text box y toggle button controls |
CheckBoxControl | Control de casilla de verificación; extiende MorphDataControl; agrega Checked |
OptionButtonControl | Control de botón de opción; extiende MorphDataControl; agrega Selected |
TextBoxControl | Control de cuadro de texto; extiende MorphDataControl; agrega Text |
CommandButtonControl | Control de botón de comando; extiende Forms2OleControl directamente |