Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Comment faire une collection de listbox ???

2 réponses
Avatar
LE TROLL
Bonjour,

Comment fairen une collection de listBox physiques et préalablement sur
la form, afin de pouvoir les appeler par un indice, j'ai fait ceci :

Dim i As Long

Dim iL As New Collection() ' débute . 1 (iL)

iL.Add(Me.list1)

iL.Add(Me.list2)

iL.Add(Me.listbox3)

iL.Add(Me.listbox4)

For i = 1 To 4

Select Case i

Case 1 : iL(1).items.add("un")

Case 2 : iL(2).items.add("deux")

Case 3 : iL(3).items.add("trois")

Case 4 : iL(4).items.add("quatre")

End Select

Next i


Mais le compilateur n'en veut pas, il me met une vague en dessous, me
disant que les listbox ne sont pas membre de "nom d'application" form1 ???

Il doit manquer quelque chose, toutefois les listes sont bien éclarées
physiquement, puis-je avoir vos lumières ?

Et, quand on termine, faut-il faire :
variableOblet_iL = NoThing ???

Cordialement ;o)

-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.

2 réponses

Avatar
Bonjour Le Troll,

Je ne sais pas ! (c'est malin ca ! il sait pas et il répond !)

Mais par contre, je peux déjà te dire que ca ne sera pas de 1 à 4, mais de 0
à 3, sachant qu'il peut être préférable de mettre de 0 à Ubound(iL).

Cordialement,
Stéphane.


"LE TROLL" <le a écrit dans le message de news:

Bonjour,

Comment fairen une collection de listBox physiques et préalablement sur
la form, afin de pouvoir les appeler par un indice, j'ai fait ceci :

Dim i As Long

Dim iL As New Collection() ' débute . 1 (iL)

iL.Add(Me.list1)

iL.Add(Me.list2)

iL.Add(Me.listbox3)

iL.Add(Me.listbox4)

For i = 1 To 4

Select Case i

Case 1 : iL(1).items.add("un")

Case 2 : iL(2).items.add("deux")

Case 3 : iL(3).items.add("trois")

Case 4 : iL(4).items.add("quatre")

End Select

Next i


Mais le compilateur n'en veut pas, il me met une vague en dessous, me
disant que les listbox ne sont pas membre de "nom d'application" form1 ???

Il doit manquer quelque chose, toutefois les listes sont bien éclarées
physiquement, puis-je avoir vos lumières ?

Et, quand on termine, faut-il faire :
variableOblet_iL = NoThing ???

Cordialement ;o)

-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.




Avatar
LE TROLL
Bonjour Stéphane,

Alors j'ai enfin trouvé comment faire une collection, donc en pratique
indicer un objet (listes en l'espèce), voici :

Dim i As Long

Dim iL As New Collection() ' d,bute . 1 (iL)

iL.Add(Me.ListBox1)

iL.Add(Me.ListBox2)

iL.Add(Me.ListBox3)

iL.Add(Me.ListBox4)

For i = 1 To 4

Select Case i

Case 1 : iL(i).items.add("un")

Case 2 : iL(i).items.add("deux")

Case 3 : iL(i).items.add("trois")

Case 4 : iL(i).items.add("quatre")

End Select

Next i



Tiens, y a mon éditeur WebMail qui fait ce qu'il veut, il change de
police, de taille, de couleur, d'espacement, ben ? Pourquoi pas...



Alors ça débute bien à 1 et non pas à 0, c'est une particularité des
collections semblet-t-il... Pour une fois que c'est normal, le 0 étant le
plus souvent un neutre, et non pas un positif...



Par contre je ne sais pas s'il faut utiliser "NoThing" en fin
d'utilisation, en sortie de programme ?



Je me suis rensegné gâce à un site aussi, ici :



http://www.pise.info/vb-net/06.htm



C'est pas mal, il traite de la façon d'utiliser "for each" avec les
collections, l'instruction "TypeOf" idem...

Il dit même qu'on peut rajouter aux Handles d'une procédure la liste des
objets que l'on veut manipuler en les indiçant, ce qui serait une seconde
méthode, mais bon, une seule suffit, tu verras si tu lis, ce n'est pas mal
(un prof de fac), et justement lui aussi dit que les collections commencent
un 1, et critique franchement vbNet, c'est d'ailleurs ce que j'en pense :
deux fois plus compliqué et tordu, et deux fois moins performant, oui, je
sais, on n'a pas le choix :o)



Bon, ben à la prochaîne, déjà là je vais me décharger d'un poids en
indiçant, car jen avait marre de mettre if list1, if list2...



Cordialement ;o)

-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.


<Stéphane> a écrit dans le message de
news:
Bonjour Le Troll,

Je ne sais pas ! (c'est malin ca ! il sait pas et il répond !)

Mais par contre, je peux déjà te dire que ca ne sera pas de 1 à 4, mais de
0 à 3, sachant qu'il peut être préférable de mettre de 0 à Ubound(iL).

Cordialement,
Stéphane.


"LE TROLL" <le a écrit dans le message de news:

Bonjour,

Comment fairen une collection de listBox physiques et préalablement
sur la form, afin de pouvoir les appeler par un indice, j'ai fait ceci :

Dim i As Long

Dim iL As New Collection() ' débute . 1 (iL)

iL.Add(Me.list1)

iL.Add(Me.list2)

iL.Add(Me.listbox3)

iL.Add(Me.listbox4)

For i = 1 To 4

Select Case i

Case 1 : iL(1).items.add("un")

Case 2 : iL(2).items.add("deux")

Case 3 : iL(3).items.add("trois")

Case 4 : iL(4).items.add("quatre")

End Select

Next i


Mais le compilateur n'en veut pas, il me met une vague en dessous, me
disant que les listbox ne sont pas membre de "nom d'application" form1
???

Il doit manquer quelque chose, toutefois les listes sont bien éclarées
physiquement, puis-je avoir vos lumières ?

Et, quand on termine, faut-il faire :
variableOblet_iL = NoThing ???

Cordialement ;o)

-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.