Wie kann ich das Zeichnungsbild auf der picturebox löschen? ____ Folgendes hilft mir nicht:
pictbox.Image = null;
pictbox.Invalidate();
Bitte helfen.
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)];
}
Wie andere bereits gesagt haben, sollte das Festlegen der Image
-Eigenschaft auf null
funktionieren.
Wenn dies nicht der Fall ist, bedeutet dies möglicherweise, dass Sie die Eigenschaft InitialImage verwendet haben, um Ihr Bild anzuzeigen. Wenn dies tatsächlich der Fall ist, setzen Sie diese Eigenschaft stattdessen auf null
:
pictBox.InitialImage = null;
Das Festlegen der Image
-Eigenschaft auf null funktioniert problemlos. Das im Bildfeld aktuell angezeigte Bild wird gelöscht. Stellen Sie sicher, dass Sie den Code genau so geschrieben haben:
picBox.Image = null;
if (pictureBox1.Image != null)
{
pictureBox1.Image.Dispose();
pictureBox1.Image = null;
}
private void ClearBtn_Click(object sender, EventArgs e)
{
Studentpicture.Image = null;
}
Ich gehe davon aus, dass Sie die über PictureBox gezeichneten Bilder löschen möchten.
Dies erreichen Sie über ein Bitmap-Objekt und ein Graphics-Objekt. Sie könnten so etwas tun
Graphics graphic = Graphics.fromimage(pictbox.Image);
graphic.Clear(Color.Red)//Color to fill the background and reset the box
War es das, was Sie herausgesehen haben?
EDIT
Da Sie die Paint-Methode verwenden, würde dies dazu führen, dass sie jedes Mal neu gezeichnet wird. Ich würde vorschlagen, dass Sie auf der Formlevel ein Flag setzen, das angibt, ob die Paint-Box aktiviert werden soll
private bool _shouldDraw = true;
public bool ShouldDraw
{
get { return _shouldDraw; }
set { _shouldDraw = value; }
}
In deinem Paint einfach verwenden
if(ShouldDraw)
//do your stuff
Wenn Sie auf die Schaltfläche klicken, setzen Sie diese Eigenschaft auf "false".
Sie benötigen Folgendes:
pictbox.Image = null;
pictbox.update();
Ich musste eine Refresh () - Anweisung nach dem Image = null hinzufügen, damit die Dinge funktionieren.
Ich hatte auch ein hartnäckiges Bild, das nicht verschwinden würde, indem Image und InitialImage auf null gesetzt wurden. Um das Bild endgültig aus der pictureBox zu entfernen, musste ich den folgenden Code verwenden. Durch wiederholtes Aufrufen von Application.DoEvents ():
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();