Bonjour,

Avec ce code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
private void button1_Click(object sender, EventArgs e)
        {
            PictureBox pb = new PictureBox();
            pb.Image = new Bitmap("c:\\image.jpg");
            this.Controls.Add(pb);
        }
on remarque bien qu'il y a une fuite mémoire, à chaque fois qu'on clique sur le bouton on charge la bitmap sans jamais la libérer.

Pour remédier à ce problème, j'ai opté pour cette solution :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
private PictureBox pb;
private void button1_Click(object sender, EventArgs e)
        {
            if (pb != null)
                pb.Dispose();
 
            pb = new PictureBox();
            pb.Image = new Bitmap("c:\\image.jpg");
            this.Controls.Add(pb);
            GC.Collect();
        }
Qu'en pensez-vous de cette solution ? existe-t-il une autre solution plus élégante ?

Merci
+