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

zarmin 49 Messages postés mardi 28 juin 2005Date d'inscription 16 avril 2008 Dernière intervention - 19 août 2005 à 11:04 - Dernière réponse : zarmin 49 Messages postés mardi 28 juin 2005Date d'inscription 16 avril 2008 Dernière intervention
- 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
zarmin 49 Messages postés mardi 28 juin 2005Date d'inscription 16 avril 2008 Dernière intervention - 19 août 2005 à 14:35
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 :)

Merci zarmin 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 95 internautes ce mois-ci

Commenter la réponse de zarmin
zarmin 49 Messages postés mardi 28 juin 2005Date d'inscription 16 avril 2008 Dernière intervention - 19 août 2005 à 11:16
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
sebmafate 4947 Messages postés lundi 17 février 2003Date d'inscription 14 février 2014 Dernière intervention - 19 août 2005 à 11:29
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
zarmin 49 Messages postés mardi 28 juin 2005Date d'inscription 16 avril 2008 Dernière intervention - 19 août 2005 à 11:34
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.