Types de contrôle ActiveX (Forms 2.0) hérités
Types de contrôle hérités ActiveX (Forms 2.0)
Travailler avec les objets OLE et le contenu intégré couvre comment atteindre un contrôle ActiveX Microsoft Forms 2.0 intégré via OleFormat.OleControl et le convertir en type abstrait Forms2OleControl classe de base. Aspose.Words FOSS pour .NET expose également cinq sous-classes fortement typées pour les types de contrôles spécifiques pris en charge par Word — CheckBoxControl, OptionButtonControl, TextBoxControl, CommandButtonControl, et MorphDataControl – chacun dans le Aspose.Words.Drawing.Ole namespace, ajout d’un membre spécifique au contrôle en plus des propriétés Forms2OleControl fournit déjà (Caption, Value, Enabled, Type, GroupName, ForeColor, BackColor, Width, Height, Name, ChildNodes).
CheckBoxControl et OptionButtonControl
CheckBoxControl étend MorphDataControl et ajoute Checked (un bool) pour l’état activé/désactivé du contrôle. OptionButtonControl étend également MorphDataControl et ajoute Selected (un bool) — utilisé pour un ensemble de boutons d’option mutuellement exclusifs qui partagent le même GroupName.
TextBoxControl
TextBoxControl étend MorphDataControl et ajoute Text (un string), le texte affiché et modifiable du contrôle.
CommandButtonControl
CommandButtonControl étend Forms2OleControl directement (et non MorphDataControl) et possède son propre constructeur. Il représente un bouton qui exécute une macro lorsqu’il est cliqué dans Word, avec son libellé de bouton exposé via la propriété héritée Caption.
MorphDataControl: la base partagée pour les contrôles de saisie de données
MorphDataControl est une base agrégée pour six types de contrôles liés – case à cocher, zone combinée, zone de liste, bouton d’option, zone de texte et bouton bascule. CheckBoxControl, OptionButtonControl et TextBoxControl l’étendent chacun, héritant de ses membres et ajoutant une propriété propre à leur type.
Conseils et bonnes pratiques
- Lisez
Forms2OleControl.Type(une valeurForms2OleControlType) pour identifier un contrôle avant de le convertir en l’une des sous-classes spécifiques – tous lesForms2OleControlne sont pas parmi les cinq sous-classes fortement typées présentées ici. - Utilisez
GroupNamepour associer plusieurs instances deOptionButtonControlen un ensemble mutuellement exclusif, conformément à la façon dont Word regroupe les boutons d’option. - Accédez aux contrôles imbriqués à l’intérieur d’un cadre ou d’un conteneur multipage via le
ChildNodeshérité (unForms2OleControlCollection), quel que soit le type de sous-classe du conteneur.
Problèmes courants
| Problème | Cause | Correction |
|---|---|---|
Le casting d’un Forms2OleControl vers CheckBoxControl lève une InvalidCastException | Le contrôle est d’un type de contrôle Forms 2.0 différent (par exemple un TextBoxControl ou un OptionButtonControl) | Vérifiez Forms2OleControl.Type avant de caster vers une sous-classe spécifique |
OptionButtonControl.Selected n’est pas mutuellement exclusif avec les contrôles frères | Les contrôles ne partagent pas le même GroupName | Définissez la même valeur GroupName sur chaque OptionButtonControl de l’ensemble |
CommandButtonControl.Caption est vide | La légende du bouton provient du Forms2OleControl.Caption hérité, et non d’une propriété spécifique à CommandButtonControl | Lisez Caption, pas un membre CommandButtonControl inexistant |
FAQ
Comment savoir à quelle classe de contrôle fortement typée un Forms2OleControl appartient réellement?
Lisez sa propriété Type (Forms2OleControlType) ou essayez un transtypage vers la sous-classe spécifique que vous attendez, comme CheckBoxControl ou TextBoxControl.
Quelle est la différence entre MorphDataControl et Forms2OleControl?
Forms2OleControl est la base abstraite de chaque contrôle Forms 2.0. MorphDataControl est une base abstraite plus spécifique, elle-même dérivée de Forms2OleControl, partagée par les types de contrôle case à cocher, boîte combinée, boîte de liste, bouton d’option, zone de texte et bouton bascule.
Comment lire l’état coché d’un contrôle case à cocher?
Transtypez le Forms2OleControl en CheckBoxControl et lisez sa propriété Checked.
Est-ce que CommandButtonControl étend MorphDataControl comme les autres?
Non – CommandButtonControl étend Forms2OleControl directement, car un bouton de commande n’est pas un contrôle de saisie de données.
API Reference Résumé
| Classe | Description |
|---|---|
MorphDataControl | Base abstraite pour les contrôles checkbox, combo box, list box, option button, text box et toggle button |
CheckBoxControl | Contrôle de case à cocher; étend MorphDataControl; ajoute Checked |
OptionButtonControl | Contrôle de bouton d’option; étend MorphDataControl; ajoute Selected |
TextBoxControl | Contrôle de zone de texte; étend MorphDataControl; ajoute Text |
CommandButtonControl | Contrôle de bouton de commande; étend Forms2OleControl directement |