C# 在for循环的帮助下移动图像上的线条
我想在图像上移动一条线。事实上,我正在使用一个循环。当我画一条新线时,前一条线应该被删除。但我不知道如何删除前一行。我尝试使用invalidate和dispose方法,但没有成功。我的代码是: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
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中。我想使用循环在图像上水平和垂直移动线条。在当前代码中,线条没有被删除。现在清楚了吗?您需要重新绘制整个图像(初始),因为您将其投影为位图。在此基础上,您可以绘制线条(像素)但我不想重画图像。一定有其他解决方案。我想的是,我在处理或失效等方面出错。