Tableau de contrôles dynamiques (avec évènements)

Description

  • Undocumented VBA feature*


Cette source VBA s'appuie sur l'objet Collection de VB pour créer des collections de contrôles.

Comme il n'est pas possible, en VB sous VBA, de modifier le designer (quoiqu'un bon complément?), cette source va créer dynamiquement (mais en liaison précoce) des collections de contrôles !

Le cadeau est la gestion des évènements déclenchés par des contrôles collectionnés (comme dans VB !), grâce à la classe d'emballage (wrapping).

Et pour ceux d'entre vous qui connaissent le wrapping, posez-vous la question suivante : comment obtenir un IEnumerator si VBA ne vous propose pas le menu Attributs de Procédures?

Conclusion :


Testez la démo, et ensuite, appropriez-vous le code!
L'essentiel réside dans les 2 classes (ExtendedControls et ExtendedControl).

Pour les réutiliser, n'utilisez pas le copier/coller, cela ne suffit pas. Exportez les modules de classes (*.cls) et le module standard (*.bas), et ré-importez-les dans votre projet.

N'hésitez pas à les faire évoluer ! Par fainéantise, je n'ai traité que 2 types (TextBox et Label), mais on peut en ajouter de nombreux autres assez facilement. De plus, je n'ai implémenté que quelques évènements (2 pour être honnête), mais ce qui marche pour 2, marche pour tous les autres (sauf les évènements de l'objet générique de type Control).

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.