Rafraichir/supprimer un pictureBox dynamiquement [Résolu]

Signaler
Messages postés
10
Date d'inscription
samedi 19 mars 2011
Statut
Membre
Dernière intervention
7 septembre 2011
-
Messages postés
15
Date d'inscription
jeudi 20 novembre 2008
Statut
Membre
Dernière intervention
1 septembre 2013
-
salut,
j'ai ajouter des picturebox de cette façon:
int w=0
imgPhoto = new PictureBox();
imgPhoto.BorderStyle = System.Windows.Forms.BorderStyle.None;
imgPhoto.Name = imgPhoto + w.ToString();
Image image = Image.FromFile("samac.jpg");
imgPhoto.Image = image;
imgPhoto.Height = image.Height;
imgPhoto.Width = image.Width;
imgPhoto.SizeMode = PictureBoxSizeMode.StretchImage;
int x,y;
........
......
imgPhoto.Location = new Point(x, y);
this.Controls.Add(imgPhoto);
w++;
Maintenant, j'ai deux boutons Modifier et supprimer. Mon probleme c'est que l'indice w je vais le recupere a partir d'une methode et a partir de cette indice je veux utiliser les methodes refresh() et hide(). la syntaxe suivante ne marche pas :
imgPhoto + indice.ToString().Location=new Point(newx, newy);
imgPhoto + indice.ToString().refresh();
comment je peux s'en sortir ???
Merci d'avance !!

7 réponses

Messages postés
1860
Date d'inscription
lundi 28 novembre 2005
Statut
Modérateur
Dernière intervention
14 février 2015
39
Salut

Déjà,
imgPhoto.Name = imgPhoto + w.ToString();

Tu devrais remplacer ça par
imgPhoto.Name = "imgPhoto" + w.ToString();


La solution la plus simple est de rechercher le contrôle avec tel ou tel nom dans ton form :
this.Controls["imgPhoto" + indice.ToString()].Location = new Point(newx, newy);


Krimog : while (!(succeed = try())) ;
- Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé. -
Messages postés
10
Date d'inscription
samedi 19 mars 2011
Statut
Membre
Dernière intervention
7 septembre 2011

merci pour la reponse mais juste un autre question, pourquoi apres l'ajout des picturebox. et lors du prochain execution je veux ces pictureBox soient visible:
splitContainer1.Panel2.Controls["imgPhoto" + indice.ToString()].Visible = true;
mais ça ne marche pas avec l'erreur :
La référence d'objet n'est pas définie à une instance d'un objet.???
Messages postés
1860
Date d'inscription
lundi 28 novembre 2005
Statut
Modérateur
Dernière intervention
14 février 2015
39
Avec ton code, tu recherches tous le contrôle avec le nom en question dans le Panel2. Est-tu sûr que le contrôle se trouve dans ce panel ?

Krimog : while (!(succeed = try())) ;
- Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé. -
Messages postés
10
Date d'inscription
samedi 19 mars 2011
Statut
Membre
Dernière intervention
7 septembre 2011

oui je suis sure sinon il ne s'affiche pas lors de l'ajout ou sera deplacé lors d'une modification de Location. mais mon probleme si je ferme et je reexecute l'erreur persiste
Messages postés
15
Date d'inscription
jeudi 20 novembre 2008
Statut
Membre
Dernière intervention
1 septembre 2013

Salut,

J'espère ne pas dire de bêtise, mais dans le code plus haut, il y avait la ligne
this.Controls.Add(imgPhoto);

A-tu bien pensé à changer en :
splitContainer1.Panel2.Controls.Add(imgPhoto);


L'erreur "La référence d'objet n'est pas définie à une instance d'un objet" signifie que l'objet cherché n'a pas été trouvé, c'est donc soit une faute dans la définition du nom de l'objet, soit dans son "emplacement".

[www.xp-lan.fr www.xp-lan.fr]
Messages postés
10
Date d'inscription
samedi 19 mars 2011
Statut
Membre
Dernière intervention
7 septembre 2011

cette ligne je l'ai corrigé deja avant de poser ma deuxieme question. et c'est pour cela je me suis bloqué car l'objet cherché deja exsite !!!
Messages postés
15
Date d'inscription
jeudi 20 novembre 2008
Statut
Membre
Dernière intervention
1 septembre 2013

Pourrais-tu nous écrire une partie de ton code de maintenant s'il te plait ? Parce que là je vois pas trop d'où vient l'erreur si l'objet existe et est au bon endroit..