问题描述
我在做一个简单的画板,做到了绘制知道的地方,但是再画第二次直线的时候就会把前面的一条直线给擦掉,请问谁有关于直线重绘的代码,帮忙给我介绍一下呀,急需!
解决方案
解决方案二:
你没说你用什么方法绘制的,如果可以,请贴出关键代码
解决方案三:
privatevoidpictureBox1_MouseMove(objectsender,System.Windows.Forms.MouseEventArgse){if(drawing){Graphicsg=this.pictureBox1.CreateGraphics();PenbackPen=newPen(this.pictureBox1.BackColor);g.DrawLine(backPen,this.start,this.end);this.end.X=e.X;this.end.Y=e.Y;PenforePen=newPen(Color.Blue);g.DrawLine(forePen,this.start,this.end);}}privatevoidpictureBox1_MouseUp(objectsender,System.Windows.Forms.MouseEventArgse){if(drawing){Graphicsg=this.pictureBox1.CreateGraphics();PenbackPen=newPen(this.pictureBox1.BackColor);g.DrawLine(backPen,this.start,this.end);this.end.X=e.X;this.end.Y=e.Y;PenforePen=newPen(Color.Blue);g.DrawLine(forePen,this.start,this.end);this.drawing=false;this.drawing=false;array.Add(newRectangle(this.start,newSize(this.width,this.height)));}}这是我做的关于mousemove和mouseup的代码
解决方案四:
引用2楼wodewaisheng的回复:
privatevoidpictureBox1_MouseMove(objectsender,System.Windows.Forms.MouseEventArgse){if(drawing){Graphicsg=this.pictureBox1.CreateG……
每次都CreateGraphics,当然会被清除掉吧。改用Graphicsg=Graphics.FromImage(pictureBox1.Image);这样试试。还有画完了别忘了g.Dispose();
解决方案五:
我还是新手,这个方法不懂,可不可以在我创建的代码的基础上写一下关于paint的重绘的代码呀?