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