C# 在for循环的帮助下移动图像上的线条

C# 在for循环的帮助下移动图像上的线条,c#,for-loop,line,draw,C#,For Loop,Line,Draw,我想在图像上移动一条线。事实上,我正在使用一个循环。当我画一条新线时,前一条线应该被删除。但我不知道如何删除前一行。我尝试使用invalidate和dispose方法,但没有成功。我的代码是: int xinc = 0, yinc = 0; for (int loop = 0; loop <= 363; loop++) { Thread.Sle

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

           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);
                }
int xinc=0,yinc=0;

对于(int-loop=0;loop,不清楚您是在使用画布还是其他工具 技术。不管怎样,这是一般的答案

  • 如果使用位图(画布),则无法修改位图的位置
    线条类似于修改对象位置,因为所有内容都是像素
  • 相反,您可以在绘制图形之前重新绘制初始图像(输入) 在线上

    我只是想知道,你想实现什么


谢谢sandeep。我正在使用表单和picturebox。图像显示在picturebox1中。我想使用循环在图像上水平和垂直移动线条。在当前代码中,线条没有被删除。现在清楚了吗?您需要重新绘制整个图像(初始),因为您将其投影为位图。在此基础上,您可以绘制线条(像素)但我不想重画图像。一定有其他解决方案。我想的是,我在处理或失效等方面出错。