借助for循环在图像上移动一行

本文关键字:一行 移动 for 循环 图像 借助 | 更新日期: 2023-09-27 18:21:43

我想在图像上移动一行。事实上,我正在使用循环。当我画一条新行时,前一行应该被删除。但是我不知道如何删除前一行。我尝试使用无效和处置方法,但没有成功。我的代码是:

           int xinc = 0, yinc = 0;                
           for (int loop = 0; loop <= 363; loop++)
                {
                    Thread.Sleep(200);
            MethodInvoker actionimage1 = delegate
            {
                Graphics g = pictureBox1.CreateGraphics();
                if (loop <= 117)
                {
                    Pen p = new Pen(Color.Red, 4.0f);
                    g.DrawLine(p, 0, xinc, 363, xinc);
                    g.Clear(this.BackColor);
                    this.Dispose();
                    this.Invalidate();
                    xinc++;
                }
                if (loop <= 363)
                {
                    Pen p = new Pen(Color.Red, 4.0f);
                    g.DrawLine(p, yinc, 0, yinc, 117);
                    g.Clear(this.BackColor);
                    this.Dispose(); // I need here to remove the line, 
                                      such that when loop starts again the 
                                      sholud be on next coordinate. 
                    this.Invalidate();
                    yinc++;
                }
                };
            pictureBox1.BeginInvoke(actionimage1);
                }

借助for循环在图像上移动一行

不清楚您是在使用画布还是其他技术无论如何,这是的一般答案

  • 如果使用位图(画布),则无法修改
    像修改对象位置一样的线条,因为一切都是像素
  • 相反,您可以在绘制

    只是好奇地想知道,你想实现什么?