web-dev-qa-db-de.com

Klares Bild in der Bildbox

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

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;
33

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;
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

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".

4
V4Vendetta

Sie benötigen Folgendes:

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

Ich musste eine Refresh () - Anweisung nach dem Image = null hinzufügen, damit die Dinge funktionieren.

0
HillbillyBlue

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();
0
dmihailescu