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)];
}
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;
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;
if (pictureBox1.Image != null)
{
pictureBox1.Image.Dispose();
pictureBox1.Image = null;
}
private void ClearBtn_Click(object sender, EventArgs e)
{
Studentpicture.Image = null;
}
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.
Vous avez besoin des éléments suivants:
pictbox.Image = null;
pictbox.update();
J'ai dû ajouter une instruction Refresh () après Image = null pour que tout fonctionne correctement.
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();