使用.NET删除矩形?

Din*_*inu 3 .net c# graphics

我可以删除我绘制的旧矩形并绘制一个新的矩形吗?

private void panel1_MouseClick(object sender, MouseEventArgs e)
{
        Graphics g = this.panel1.CreateGraphics();
        Pen pen = new Pen(Color.Black, 2);

        g.DrawRectangle(pen, 100,100, 100, 200);
        g.dispose();
}
Run Code Online (Sandbox Code Playgroud)

Dea*_*ing 5

不,你不能"删除"已经绘制的东西.你可以用别的东西覆盖它,但用Graphics物体绘画就像在现实生活中画画:一旦油漆干了,你只能用另一种颜色在上面画画,你不能"抹掉"它.

您可能不应该为了响应MouseClick而绘制内容.最好绘制事物以响应Paint事件.在这种情况下我要做的是Rectangle在MouseClick上的列表中添加一个结构,然后调用panel1.Invalidate()它来要求它重绘自己.然后在Paint面板的情况下,在那里进行绘图.

这将一石二鸟,因为你可以通过简单地从绘制的东西列表中删除它来"擦除"东西.