L'image de mon PictureBox disparait... [Résolu]

Signaler
Messages postés
141
Date d'inscription
mardi 18 mars 2003
Statut
Membre
Dernière intervention
3 octobre 2010
-
Messages postés
141
Date d'inscription
mardi 18 mars 2003
Statut
Membre
Dernière intervention
3 octobre 2010
-
Bonjour

Mon problème est le suivant :
J'ai créé un picturebox dans lequel j'insère une portion d'une image contenue elle aussi dans un picturebox.
Pour cela j'utilise la fonction DrawImage

Cela donne le code suivant

ulCorner = New Point(0, 0)
urCorner = New Point(50, 0)
llCorner = New Point(0, 50)
destPara = New Point() {ulCorner, urCorner, llCorner}
srcRect = New Rectangle(20, 20, 100, 100)
newimage = PictureBox1.Image (contenant l'image de départ)

Je clique sur un bouton qui lance la procédure suivante
Me.PictureBox2.CreateGraphics.DrawImage(New Bitmap(newimage), destPara, srcRect, units)

Et cela fonctionne très bien.

Mon soucis est que si je réduit la fenetre Form pour la restaurer ensuite, mon image disparait.
Et là j'ai besoin de vous !!!

Je ne m'explique pas pourquoi l'image disparait.
Avez-vous une idée ??

Merci beaucoup par avance

2 réponses

Messages postés
2814
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
2 juin 2020
27
Bonsoir,

La méthode PictureBox.CreateGraphics crée un graphique à partir du contôle lui-même. C'est l'équivalant de :

Dim g As New Graphic = Graphics.FromHwnd(PictureBox.Handle)

Elle déssine dans le contrôle directement et non pas dans une image qui se place dans le contrôle, de ce fait, quand celui-ci doit être redessiné (Suite à une sortie de l'écran, il appelle la méthode "Paint" en te passant en paramètre une instance de la classe PaintEventArgs, contenant le graphique du contrôle.

Place ta procédure dans celui-ci ou bien suis la méthode suivante :

Ce qu'il faut que tu fasse, c'est dessiner dans une Bitmap et insérer celle-ci dans ton PictureBox.

Dim _bmp As New Bitmap(Width, Height)
Dim g As Graphics = Graphics.FromImage(_bmp)

g.DrawImage ....

PictureBox1.Image = _Bmp

                                                                              
Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer. <
Messages postés
141
Date d'inscription
mardi 18 mars 2003
Statut
Membre
Dernière intervention
3 octobre 2010

Un grand merci pour tes explications.
Cela fonctionne très bien maintenant

Encore merci

PhilouVB