Parcourir les contrôles dans une frame

Dinbougre Messages postés 48 Date d'inscription mercredi 11 octobre 2000 Statut Membre Dernière intervention 22 juin 2005 - 14 avril 2004 à 13:25
Dinbougre Messages postés 48 Date d'inscription mercredi 11 octobre 2000 Statut Membre Dernière intervention 22 juin 2005 - 15 avril 2004 à 09:14
Bonjour, j'avais trouvé hier sur ce forum un code semblable à ce que je cherche mais ce matin je l'ai essayé et cela ne fonctionne pas. J'ai beau cherché je ne retrouve plus ce topic et dans google impossible de mettre la main sur un exemple alors je me tourne vers vous :)

J'ai une feuille en VB6, une frame et des textbox et labels dans cette frame.

Je voudrai parcourir tous ces textbox et labels dans cette frame uniquement. Je ne veux pas traiter les contrôles en dehors de cette frame.

Mon code :
   Dim frm     As Frame
   Dim ctrl      As Control

   Set frm = Me.maframe
   For Each ctrl In Me.Controls
      If (TypeOf ctrl Is TextBox Or TypeOf ctrl Is Label) Then
         msgbox "youpi"
      End If
   Next


Là dessus il me retourne tous les textbox et labels de mon formulaire, normal puisque je fais un "for each" dans mon formulaire et non pas dans ma frame. Si je fais un "for each" sur "frm" ça ne marche pas.

Je ne sais pas si ça a un rapport ou pas mais quand je tape "ctrl." il ne m'affiche pas la ptite fenêtre d'aide répertoriant toutes les propriétés et méthodes de l'objet ctrl, est ce normal? ou j'ai fait une erreur de manipulation?

4 réponses

cs_rene38 Messages postés 1858 Date d'inscription samedi 29 juin 2002 Statut Membre Dernière intervention 17 octobre 2013 11
14 avril 2004 à 13:56
Bonjour

Je connais le nom de ma frame : MaFrame

Dim objet As Control
For Each objet In Me.Controls
If objet.Container.Name = "MaFrame" Then
   Debug.Print objet.Name' ou autre chose ...
End If
Next 
0
Dinbougre Messages postés 48 Date d'inscription mercredi 11 octobre 2000 Statut Membre Dernière intervention 22 juin 2005
14 avril 2004 à 14:03
merci ça marche nickel :)
j'essayais avec objet.parent qui me retournais toujours le nom du formulaire mais je savais pas ce que c'était container :)

y a pas une méthode plus propre qui me permet de boucler uniquement sur les contrôles de la frame? dans mon cas ça marche nickel mais si y a 100000 de contrôles en dehors de la frame c'est du traitement inutile non?
0
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
15 avril 2004 à 00:50
Avec autant de controle, tu dois les ajouter dynamiquement dans ton code, non ?
Alors le plus simple est de construire une collection a laquelle tu ajoutes un item chaque fois que tu ajoutes un controle à ta frame. Comme ca, t'es peinard, t'as plus qu'à parcourir ta collection de bout en bout !!

Christophe R.
0
Dinbougre Messages postés 48 Date d'inscription mercredi 11 octobre 2000 Statut Membre Dernière intervention 22 juin 2005
15 avril 2004 à 09:14
non je n'ai pas autant de contrôle mais c'était juste par curiosité que je posais la question :)
0
Rejoignez-nous