FOcaL69
Messages postés5Date d'inscriptionmardi 11 janvier 2005StatutMembreDernière intervention13 juin 2007
-
13 juin 2007 à 12:12
FOcaL69
Messages postés5Date d'inscriptionmardi 11 janvier 2005StatutMembreDernière intervention13 juin 2007
-
13 juin 2007 à 14:52
Bonjour à tous,
je désire créer une ou plusieurs PictureBox à partir d'une PictureBox déjà créée : jusque là pas de problème.
Mon problème vient du fait que j'aimerais que la ou les PictureBox créée(s) ait(ent) une ou des positions différentes de la première.
En gros je crée une pictureBox à la main avec une taille de 164; 19 et une image dedans. Puis je "copie" cette image dans un autre PictureBox :
PictureBox Pic2=new PictureBox();
Pic2 = Pic1;
Et j'aimerais mettre des coordonnées à Pic2 qui soient différentes de Pic1. Mon code actuel :
//On met l'image 1 à la position 0,0
this.Pic1.Location = new System.Drawing.Point(0,0);
//On crée une deuxième picturebox
PictureBox Pic2=new PictureBox();
//On renseigne cette nouvelle picturebox
Pic2 = this.Pic1;
//On met l'image 2 à la position 100,100
Pic2.Location = new System.Drawing.Point(100,100);
//On affiche l'image 2
Pic2.Show();
//On met l'image en 1er plan
Pic2.BringToFront();
En faisant ca l'image 1 et 2 se mettent à la même place (100,100).
J'ai aussi tenté :
//Position du Pic1
this.Pic1.Left = 0;
this.Pic1.Top = 0;
//Taille du Pic2
Pic2.Height = 169;
Pic2.Width = 19;
//Copie de l'image
Pic2.BackgroundImage = this.Pic1.BackgroundImage;
//Position de Pic2
Pic2.Left=100;
Pic2.Top = 100;
//Affichage au 1er plan
Pic2.Show();
Pic2.BringToFront();
Sans succès. Je tiens à préciser que c'est bien un BackgroundImage et pas une image. Pour l'instant le fait que ce soit une Image ou une BackgroundImage ne change pas mon probleme.
cs_niky
Messages postés168Date d'inscriptionjeudi 28 juin 2001StatutMembreDernière intervention18 octobre 20087 13 juin 2007 à 13:21
Salut,
Dans le premier morceau de code que tu as mis la ligne
Pic2 = this.Pic1;
remplace l'instance référencée par Pic2 par celle de Pic1. Du coup, le new PictureBox() ne sert plus à rien.
Dans les lignes qui suivent, lorsque tu utilises Pic2, c'est comme si tu faisais référence à Pic1 --> ce sont les mêmes objets.
Après avoir créé Pic2, il vaudrait mieux faire :
this.Controls.Add(Pic2);
(à condition que this soit une Form)
Pour le second bout de code, il se pourrait qu'une même instance d'image ne puisse pas figurer dans deux composants différents... mais j'en suis vraiment pas sûr... quelqu'un saurait ?
Lutinore
Messages postés3246Date d'inscriptionlundi 25 avril 2005StatutMembreDernière intervention27 octobre 201241 13 juin 2007 à 13:45
Salut comme le dis Niky, tu t'embrouilles avec les références :
// Là tu as créé une nouvelle PB.
PictureBox Pic2=new PictureBox();
// Là tu viens de 'supprimer' la nouvelle PB pour référencer la première.
Pic2 = Pic1;
Une image peut être partagée entre plusieurs PictureBox.
FOcaL69
Messages postés5Date d'inscriptionmardi 11 janvier 2005StatutMembreDernière intervention13 juin 2007 13 juin 2007 à 14:49
Ok le add permet d'ajouter le PictureBox au form.
Mais j'arrive toujours pas à copier l'image dans Pic2 :
PictureBox Pic2 = new PictureBox();
Pic2.Image = this.pictureBox1.Image;
this.Controls.Add(Pic2);
Pic2.Location = new System.Drawing.Point(0, 0);
Pic2.Show();
Sachant que Pic1 n'est pas en 0,0 (je préfère préciser).
Vous n’avez pas trouvé la réponse que vous recherchez ?