[VB.NET] Création d'une collection de PictureBox

Résolu
Orbital38 Messages postés 71 Date d'inscription   Statut Membre Dernière intervention   -  
Orbital38 Messages postés 71 Date d'inscription   Statut Membre Dernière intervention   -
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 ! =)

A voir également:

1 réponse

NHenry Messages postés 15219 Date d'inscription   Statut Modérateur Dernière intervention   365
 
Utilises plutôt une liste générique :
List(of PictureBox)
Ou si tu tiens à utiliser une collection :
DirectCast(MaCol(5),PictureBox)
0
Orbital38 Messages postés 71 Date d'inscription   Statut Membre Dernière intervention  
 
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. ^^
0
NHenry Messages postés 15219 Date d'inscription   Statut Modérateur Dernière intervention   365
 
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, ...
0
Orbital38 Messages postés 71 Date d'inscription   Statut Membre Dernière intervention  
 
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 !
0