47 votes

Image claire sur la boîte à images

Comment puis-je effacer l'image dessinée sur la boîte à images ? Ce qui suit ne m'aide pas :

pictbox.Image = null;
pictbox.Invalidate();

Aidez-moi, s'il vous plaît.

EDIT

private void pictbox_Paint(object sender, PaintEventArgs e) 
{ 
     Graphics g = e.Graphics; 
     vl.Draw(g, ref tran.realListForInsert); 
} 

public void Draw(Graphics g, ref List<double> arr) 
{ 
    g.DrawRectangle(new Pen(Brushes.Red, 3), nodeArr[Convert.ToInt32(templstName)].pict.Location.X, nodeArr[Convert.ToInt32(templstName)].pict.Location.Y, 25, 25); 
    g.DrawRectangle(new Pen(Brushes.Green, 3), nodeArr[Convert.ToInt32(templstArgName)].pict.Location.X, nodeArr[Convert.ToInt32(templstArgName)].pict.Location.Y, 25, 25); 
    nodeArr[Convert.ToInt32(templstName)].text.Text = arr[Convert.ToInt32(templstArgName)].ToString(); 
    arr[Convert.ToInt32(templstName)] = arr[Convert.ToInt32(templstArgName)]; 
}

5voto

user1608207 Points 39
private void ClearBtn_Click(object sender, EventArgs e)
{
    Studentpicture.Image = null;
}

1voto

John Connor Points 67

Pour l'amour de la compréhension :

Selon la façon dont vous abordez votre ou vos objectifs, gardez à l'esprit que le développeur est responsable de l'élimination de tout ce qui n'est plus utilisé ou nécessaire.

Cela signifie : Tout ce que vous avez créé avec votre pictureBox (c'est-à-dire les graphiques, les listes, etc.) sera éliminé dès qu'il ne sera plus nécessaire.

Par exemple : Disons que vous avez un fichier image chargé dans votre PictureBox et que vous souhaitez supprimer ce fichier. Si vous ne déchargez pas correctement le fichier image du PictureBox, vous ne pourrez pas supprimer le fichier, car une exception sera probablement levée, indiquant que le fichier est utilisé.

Par conséquent, il vous faudrait faire quelque chose comme :

pic_PhotoDisplay.Image.Dispose();
pic_PhotoDisplay.Image = null;
pic_PhotoDisplay.ImageLocation = null;
// Required if you've drawn something in the PictureBox. Just Don't forget to Dispose Graphic.
pic_PhotoDisplay.Update();

// Depending on your approach; Dispose the Graphics with Something Like:
gfx = null;
gfx.Clear();
gfx.Dispose();

J'espère que cela vous aidera.

0voto

dmihailescu Points 471

J'ai eu une image têtue aussi, qui ne voulait pas partir. en mettant l'image et InitialImage à null. Pour supprimer définitivement l'image de la pictureBox, j'ai dû utiliser le code ci-dessous, en appelant Application.DoEvents() à plusieurs reprises :

            Application.DoEvents();
            if (_pictureBox.Image != null)
                _pictureBox.Image.Dispose();
            _pictureBox.Image = null;
            Application.DoEvents();
            if (_pictureBox.InitialImage != null)
                _pictureBox.InitialImage.Dispose();
            _pictureBox.InitialImage = null;
            _pictureBox.Update();
            Application.DoEvents();
            _pictureBox.Refresh();

0voto

HillbillyBlue Points 21

J'ai dû ajouter une instruction Refresh() après Image = null pour que les choses fonctionnent.

0voto

Amal P S Points 367

J'ai utilisé cette méthode pour effacer l'image de picturebox. Cela peut aider quelqu'un

private void btnClear1_Click(object sender, EventArgs e)
        {

            img1.ImageLocation = null;
        }

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X