Comment passer en revue une serie d'Objets ??

Signaler
Messages postés
44
Date d'inscription
mardi 18 décembre 2001
Statut
Membre
Dernière intervention
30 novembre 2005
-
Messages postés
33
Date d'inscription
samedi 1 juin 2002
Statut
Membre
Dernière intervention
11 décembre 2002
-
Sur ma Form principale "frmMain" j'ai une Listview indexé "lwAffichage(x)".

J'aimerai savoir comment faire pour passer en revu toute mes Listview lwAffichage.

J'ai esseyai en faisant un For Each mais ca marche po :(, voici comment j'ai fait :

Dim MyObject as Listview

Set MyObject = frmMain.lwAffichage     'La il me fait une erreur
For Each MyObject in frmMain
    MyObject.visible = false     'Par exemple
Next
Set MyObject = Nothing


Pourrier vous me dire comment faire svp ?? a qu'elle endroit je me trompe ??

merci d'avance.

3 réponses

Messages postés
33
Date d'inscription
samedi 1 juin 2002
Statut
Membre
Dernière intervention
11 décembre 2002

En fait, l'instruction For Each ne fonctionne que sur les collections ou les tableaux, tu l'applique à une form donc pas étonnant que ça ne fonctionne pas !

Pour parcourir les listview de ton groupe de contrôle lwAffichage, essaie plutôt quelquechose du genre

Dim oListView as Listview

For each oListView in lwAffichage
'traitement
Next

Mais cette solution n'est pas forcément la plus adaptée, tout dépend du contexte dans lequel tu veux l'utiliser.
0
Messages postés
44
Date d'inscription
mardi 18 décembre 2001
Statut
Membre
Dernière intervention
30 novembre 2005

merci pour ta reponse

en faite je créé des lwAffichage a chaque fois que je fais une action, et j'ai la possibilité d'en supprimé, donc des fois j'ai 15 lwAffichage de créé et je supprime la numero 5 donc si je fait une boucle ca fait une erreur.
0
Messages postés
33
Date d'inscription
samedi 1 juin 2002
Statut
Membre
Dernière intervention
11 décembre 2002

Je pense que la sub suivante répondra à tes besoins, sans utiliser de boucle For Each :

Sub Hide_ListView(index As Integer)
Dim i As Integer

For i = 0 To lwAffichage.Count - 1
If i = index Then
lwAffichage(i).Visible = False
Exit For
End
Next

End Sub
0