Recup. un controle par son nom ?

ludoviclemarinel Messages postés 4 Date d'inscription mercredi 2 avril 2003 Statut Membre Dernière intervention 17 mars 2004 - 17 mars 2004 à 13:44
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 - 17 mars 2004 à 14:30
Salut,

Je voudrais récuperer un controle par son nom : par exemple : Form1.GetControl("Textbox1"),

ceci car j'ai besoin d'effectuer une série d'action sur différents controls.

deuxieme question : Idem, mais sur la collection de forms:
Comment récupérer TOUTES les forms du projet (et pas seulement celles qui sont chargées ?)?

1 réponse

crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
17 mars 2004 à 14:30
Pour accéder à un objet par son nom tu peux utilsier la collection de controle de la form

Par exemple pour obtenir une référence à un bouton Command à partir de son nom

Dim Cmd As CommandButton

    Set Cmd = Me.Controls("Command1")
    Cmd.Caption = " Test"


Pour le Pb des forms, je ne sais pas si c'est possible, mais le soucis, c'est que si tu y arrive, dès que tu vas accéder à une propriété d'une form non chargée, et bien VB va la chargée. Tu ne peux en effet pas travailler sur une form non chargée, alors qd tu fait Form2.Caption = "Test", si form2 n'est pas chargée, VB va la chargée avant de modifier le Caption !
Si tu fait cela sur bcp de forms, tu risques de bouffer de la mémoire pour rien, ou alors n'oublie surtout pas de faire un Unload Form2 après. Mais alors, tes modif seront perdues !!

Christophe R.
0
Rejoignez-nous