web-dev-qa-db-fra.com

Effacer l'image sur la boîte à images

Comment puis-je effacer l’image dans la zone d’image?

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

S'il vous plaît aider.

MODIFIER

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)]; 
} 
35
ktarik

Comme d'autres l'ont déjà dit, définir la propriété Image sur null devrait fonctionner.

Si ce n'est pas le cas, cela peut vouloir dire que vous avez utilisé la propriété InitialImage pour afficher votre image. Si c'est effectivement le cas, définissez plutôt cette propriété sur null:

pictBox.InitialImage = null;
33

Définir la propriété Image sur null fonctionnera parfaitement. Cela effacera toute image actuellement affichée dans la zone d'image. Assurez-vous que vous avez écrit le code exactement comme ceci:

picBox.Image = null;
28
Cody Gray
if (pictureBox1.Image != null)
{
    pictureBox1.Image.Dispose();
    pictureBox1.Image = null;
}
9
Grant Li
private void ClearBtn_Click(object sender, EventArgs e)
{
    Studentpicture.Image = null;
}
4
user1608207

Je suppose que vous voulez effacer les images dessinées via PictureBox.

Vous réaliserez ceci via un objet Bitmap et en utilisant un objet Graphics. vous pourriez faire quelque chose comme

Graphics graphic = Graphics.fromimage(pictbox.Image);
graphic.Clear(Color.Red)//Color to fill the background and reset the box

Est-ce ce que vous cherchiez?

MODIFIER

Étant donné que vous utilisez la méthode Paint, cela la redessinerait à chaque fois, je vous suggère de définir un indicateur au niveau du formulaire pour indiquer s'il convient ou non de peindre la Picturebox.

private bool _shouldDraw = true;
public bool ShouldDraw
{
    get { return _shouldDraw; }
    set { _shouldDraw = value; }
}

Dans votre peinture, utilisez simplement 

if(ShouldDraw)
  //do your stuff

Lorsque vous cliquez sur le bouton, définissez cette propriété sur false et tout devrait bien se passer.

4
V4Vendetta

Vous avez besoin des éléments suivants:

pictbox.Image = null;
pictbox.update();
2
stacktay

J'ai dû ajouter une instruction Refresh () après Image = null pour que tout fonctionne correctement.

0
HillbillyBlue

J'ai eu une image têtue aussi, qui ne partirait pas En définissant Image et InitialImage sur null . Pour supprimer définitivement l'image de 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();
0
dmihailescu