【问题标题】:How do i reset/clear all the drawings i did on pictureBox1?如何重置/清除我在pictureBox1 上所做的所有绘图?
【发布时间】:2013-12-10 01:00:03
【问题描述】:

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

我做到了:

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

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

如何清除旧图纸,使其不会在下次点击时显示?

这是绘画事件:将绘画事件移至新类:

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

【问题讨论】:

  • 你永远不应该使用CreateGraphics()。相反,您需要在 Paint 事件中绘制所有内容。
  • pictureBox1.Image = null;
  • 您将点保存在列表中。您不再需要它们,因此只需使用列表的 Clear() 方法。并调用图片框的 Invalidate() 方法让它重新绘制自己。

标签: c# winforms


【解决方案1】:

【讨论】:

    【解决方案2】:

    将 Image 属性设置为 null 应该可以工作。

    picBox.Image = null;
    

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

    pictBox.InitialImage = null;
    

    请参考链接: Clear image on picturebox

    【讨论】:

      【解决方案3】:

      这是有效的:

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

      【讨论】:

        猜你喜欢
        • 2020-10-02
        • 2014-05-03
        • 1970-01-01
        • 2021-07-28
        • 1970-01-01
        • 1970-01-01
        • 2017-01-23
        • 1970-01-01
        • 2023-02-18
        相关资源
        最近更新 更多