[VB.NET] Création d'une collection de PictureBox [Résolu/Fermé]

Signaler
Messages postés
62
Date d'inscription
dimanche 4 janvier 2015
Statut
Membre
Dernière intervention
19 août 2015
-
Messages postés
62
Date d'inscription
dimanche 4 janvier 2015
Statut
Membre
Dernière intervention
19 août 2015
-
Bonjour,

Je voulais savoir comment créer une collection de PictureBox.
En fait je cherche à récupérer le premier item de ma collection (une picturebox donc) dans le but de changer son image. Seulement voilà, j'ai une erreur de liaison tardive vu qu'une collection classique est de type Object.

Actuellement je fais ça :
Public Collect As Collection
Public Pic_ppl As Classe1

Collect = New Collection

Je crée mes PictureBox et à chaque fois je fais :
Pic_ppl = New Classe1
Pic_ppl.btn = PictureBoxCs
Collect.Add(Pic_ppl.btn)

Plus loin dans le code je voudrais initialiser une image (la première de ma collection). J'en suis résolu à passer par la propriété Name pour bidouiller un truc :
For Each Ctrl As System.Windows.Forms.PictureBox In Collect_menu.OfType(Of PictureBox).Where(Function(picBox) picBox.Name = "Pic1")
   Ctrl.Image = Outils.ImageList1.Images.Item(0)
Next Ctrl

Mais je trouve ça moche et je voudrais pouvoir faire un truc du style :
Collect.Item(1).Image = ImageList1.Images.Item(0)

Sauf que là VS me fait une collection d'Object avec Collect_menu. Je voulais savoir si on pouvait définir un type pour une collection et quel était la syntaxe pour faire ça.

Ou bien si il y avait autre chose pour une collection de PictureBox, comme ImageList pour une collection d'Image.

Merci ! =)

1 réponse

Messages postés
14675
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
4 juillet 2020
236
Utilises plutôt une liste générique :
List(of PictureBox)
Ou si tu tiens à utiliser une collection :
DirectCast(MaCol(5),PictureBox)
Messages postés
62
Date d'inscription
dimanche 4 janvier 2015
Statut
Membre
Dernière intervention
19 août 2015

Marche impeccable. ^^"

Bon, désolé de faire des sujets pour rien du coup. :/

Juste pour ma culture, quelle est la différence entre une collection et une liste ? C'est l'indexation par clé ? Ou bien la collection offre quelque chose en plus ?

Merci en tout cas. ^^
Messages postés
14675
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
4 juillet 2020
236
La collection est une liste d'object, une "liste générique" est une liste d'objets déjà fortement typés.
La "collection" du framework est une déclaration simplifiée (pas exact, mais c'est l'idée) List(Of Object)
Sinon, dans l'espace de nom Collection.Generic, tu as aussi des dictionnaires, liste triée, pile, file, ...
Messages postés
62
Date d'inscription
dimanche 4 janvier 2015
Statut
Membre
Dernière intervention
19 août 2015

D'acc, merci pour les explications.
Du coup les collections sont plus générales pour pas être limitées et ont plein de méthodes associées. Le genre de truc où si t'y connais rien comme moi tu t'y perds. Roger !

Merci en tout cas. Ma Form prend forme !