Faire une galerie d'image qui soit sélectionnable mais sans connaitre le nombre [Résolu]

Messages postés
49
Date d'inscription
mardi 28 juin 2005
Dernière intervention
16 avril 2008
- - Dernière réponse : zarmin
Messages postés
49
Date d'inscription
mardi 28 juin 2005
Dernière intervention
16 avril 2008
- 19 août 2005 à 14:35
Bonjour à tous!



Je dois faire un programme qui permet de sélectionner plusieurs images.
Les images doivent être disposées les une à coté des autres mais je ne
connais pas le nombre d'image.

J'avais donc pensé à créer une PictureBox à chaque fois que j'avais une nouvelle image. Voila ma fonction :



public void AddImgToWindow(System.Drawing.Bitmap bmp, int nb)

{



pictureBox2 = new System.Windows.Forms.PictureBox();


pictureBox2.Location = new System.Drawing.Point(50 + (nb * bmp.Width +
20), 50);

pictureBox2.Name = "pictureBox2";

pictureBox2.TabIndex = 2;


pictureBox2.Size = new System.Drawing.Size(bmp.Width + 10, bmp.Height +
10);

pictureBox2.TabStop = false;

pictureBox2.BackColor = Color.Blue;


pictureBox2.SizeMode =
System.Windows.Forms.PictureBoxSizeMode.CenterImage;



panel2.Controls.Add(pictureBox2);

pictureBox2.Image = bmp;

}

Ma picture box s'affiche bien ou je veux. Le problème que j'ai est le
suivant : la gestion des événements. Lorsque l'utilisateur sélectionne
une image, pour montrer qu'elle est sélectionnée je change le
background en noir



pictureBox2.MouseDown +=new MouseEventHandler(pictureBox2_MouseDown);



Logiquement seul l'événement de la dernière picturebox créé a la gestion d'événements.



Je ne connai pas beaucoup le csharp :(



Merci par avance
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
Messages postés
49
Date d'inscription
mardi 28 juin 2005
Dernière intervention
16 avril 2008
3
Merci
Alors pour informations si quelqu'un tombe sur ce problème :

La première partie fonctionne ainsi que l'ajout de l'événement.

Pour récupérer l objet qui créé l'événement il suffit de faire :



private void pictureBox2_MouseDown(object sender, MouseEventArgs e)

{

PictureBox p = (PictureBox) sender;

Console.WriteLine("Evenements");

if (p.BackColor == Color.Blue)

p.BackColor = Color.Black;

else

p.BackColor = Color.Blue;

}



La listview est certes beaucoup plus propre :)

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 119 internautes nous ont dit merci ce mois-ci

Commenter la réponse de zarmin
Messages postés
49
Date d'inscription
mardi 28 juin 2005
Dernière intervention
16 avril 2008
0
Merci
"Logiquement seul l'événement de la dernière picturebox créé a la gestion d'événements."



Et ma question est la suivante : comment faire pour gérer les événements de toutes les picture box !
Commenter la réponse de zarmin
Messages postés
4947
Date d'inscription
lundi 17 février 2003
Dernière intervention
14 février 2014
54
0
Merci
<mode pub="on" />
http://www.csharpfr.com/code.aspx?ID=29731
<mode pub="off" />

;)


<HR>
Sébastien FERRAND

Blog : http://blogs.developpeur.org/sebmafate
Commenter la réponse de sebmafate
Messages postés
49
Date d'inscription
mardi 28 juin 2005
Dernière intervention
16 avril 2008
0
Merci
en te remerciant o/
Commenter la réponse de zarmin

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.