Evenement

Résolu
cs_lilia123 Messages postés 6 Date d'inscription mardi 4 mars 2008 Statut Membre Dernière intervention 9 mai 2010 - 9 mai 2008 à 16:03
cs_lilia123 Messages postés 6 Date d'inscription mardi 4 mars 2008 Statut Membre Dernière intervention 9 mai 2010 - 10 mai 2008 à 14:12
Bonjour
J'ai des images crées dynamiquement dans une fenetre et je veux gérer l'événement click sur chaque image.
Le problème ce que lorsque je clique sur une image, l'événement se produit sur la derniére image créer.
Merci.

4 réponses

cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
10 mai 2008 à 11:46
La picture box n'est pas ajoutée dans son container, pourquoi?
Ensuite, chaque picture box aura le même eventHandler, il faudra donc faire un test dans l'event handler pour effectuer un traitement séparé pour chaque image (dans le cas ou un traitement séparé est requis).
Enfin, ça dépend ce que tu dois faire, tu peux peut-être te contenter du sender:

PictureBox p = sender as PictureBox
if(p != null)
{
  img.setImage(p.Image);
}

<hr />
-My Blog-
3
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
9 mai 2008 à 21:37
Salut,
Tu fais une boucle pour créer tes controls dynamiquement: l'abonnement à l'event handler doit être fait à cet endroit là.

<hr />
-My Blog-
0
cs_lilia123 Messages postés 6 Date d'inscription mardi 4 mars 2008 Statut Membre Dernière intervention 9 mai 2010
10 mai 2008 à 10:24
Bonjour,
j'ai déjà fait cette solution:

for (int h = 0; h < dataGridView3.RowCount - 1; h++)
                    {
                        pbximage = new System.Windows.Forms.PictureBox();
                        //
                        //    // pbximage
                        //   
                        pbximage.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
                        pbximage.Location = new System.Drawing.Point(45 + ximage, 46);
                        pbximage.Name = "" + i;
                        pbximage.Size = new System.Drawing.Size(194, 191);
                        pbximage.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
                        pbximage.TabIndex = 0;
                        pbximage.TabStop = false;
                        pbximage.Click += new System.EventHandler(this.pictureBox1_Click);
                        ximage += 194 + 20;
.....

et la fonction:
private void pictureBox1_Click(object sender, EventArgs e)
        {
            ImageGrand im = new ImageGrand();
            im.setImage(pbximage.Image);
            im.Show();
        }

mais le problème persiste
0
cs_lilia123 Messages postés 6 Date d'inscription mardi 4 mars 2008 Statut Membre Dernière intervention 9 mai 2010
10 mai 2008 à 14:12
Merci beaucoup
mon problème est résoulu
0
Rejoignez-nous