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

Résolu/Fermé
Orbital38 Messages postés 68 Date d'inscription dimanche 4 janvier 2015 Statut Membre Dernière intervention 31 octobre 2020 - Modifié par Orbital38 le 16/08/2015 à 18:40
Orbital38 Messages postés 68 Date d'inscription dimanche 4 janvier 2015 Statut Membre Dernière intervention 31 octobre 2020 - 16 août 2015 à 22:04
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 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 331
16 août 2015 à 18:50
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 68 Date d'inscription dimanche 4 janvier 2015 Statut Membre Dernière intervention 31 octobre 2020
16 août 2015 à 18:56
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 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 331
16 août 2015 à 20:17
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 68 Date d'inscription dimanche 4 janvier 2015 Statut Membre Dernière intervention 31 octobre 2020
16 août 2015 à 22:04
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