如何重置/清除我在pictureBox1上做的所有图纸?

时间:2013-12-09 15:47:00

标签: c# winforms

我有一个带有图像的pictureBox1,当我点击它的绘图点时。 现在我添加了一个重置​​按钮,当我点击它时它会调用它,它应该清除我在pictureBox上做的所有绘图,并将图像保留在里面而没有图纸。

我做了:

private void button4_Click(object sender, EventArgs e)
        {
            Graphics graphics;
            graphics = pictureBox1.CreateGraphics();
            graphics.DrawImage(pictureBox1.Image, 0, 0);
        }

所以我在pictureBox1上画了很多点,然后点击按钮,所有点都消失了,但是一旦我再次点击picturebox1,我也会看到新的点数,但也会看到我在清算前做的旧点。

如何清除旧图纸,以便下次点击时不会出现?

这是paint事件:将paint事件移动到一个新类:

public static void Paint(List<PointF> pb1points, GraphicsPath pb1gp, Point movingPoint, PictureBox pictureBox1, Graphics e)
        {
            e.Clear(Color.White);
            e.DrawImage(pictureBox1.Image, movingPoint);
            Pen p;
            p = new Pen(Brushes.Green);
            foreach (PointF pt in pb1points)
            {
                e.FillEllipse(Brushes.Red, pt.X, pt.Y, 3f, 3f);
            }
            using (Pen pp = new Pen(Color.Green, 2f))
            {
                pp.StartCap = pp.EndCap = LineCap.Round;
                pp.LineJoin = LineJoin.Round;
                e.DrawPath(pp, pb1gp);
            }
        }

3 个答案:

答案 0 :(得分:0)

您可以尝试使用Graphics.Clear()。

参考:http://msdn.microsoft.com/en-us/library/system.drawing.graphics.clear(v=vs.110).aspx

答案 1 :(得分:0)

将Image属性设置为null应该有效。

picBox.Image = null;

即使它不起作用,您可能会使用InitialImage属性来显示图像。

pictBox.InitialImage = null;

请参考链接: Clear image on picturebox

答案 2 :(得分:0)

这是有效的:

private void button4_Click(object sender, EventArgs e)
        {
            Graphics graphics;
            graphics = pictureBox1.CreateGraphics();
            graphics.DrawImage(pictureBox1.Image, 0, 0);
            pb1points = new List<PointF>();
        }