用鼠标拖动画一条线,不采用背景色去擦掉画过的线,有其它更好的办法吗?

解决方案 »

  1.   

    使用ControlPaint.DrawReversibleLine命令画
      

  2.   

    在onpaint事件里面画,自动擦除的。
      

  3.   

    除线之外是否有其他图像?
    线是否是在已有图像上绘制?
    使用Paint绘制还是BackGroundImage贴图?
      

  4.   

    看你线是怎么画的
    只是画在form上的话  画的线会添加到一个List里面 以供Paint绘制用
    擦掉线的话 只需要将该线从list里面 擦除
    如果是画到图上的话 貌似擦掉了 也会留下痕迹吧
      

  5.   

    自己定义啊。 List<Point[]> arrLines = new List<Point[]>();
            private void Form1_Paint(object sender, PaintEventArgs e)
            {
                if (arrLines.Count > 0)
                {
                    e.Graphics.DrawCurve(Pens.Black, arrLines[0]);
                }
            }        private void button1_Click(object sender, EventArgs e)
            {
                Point[] arrPoints = new Point[3];
                arrPoints[0] = new Point(10, 10);
                arrPoints[1] = new Point(50, 50);
                arrPoints[2] = new Point(30, 40);
                arrLines.Add(arrPoints);
                this.Invalidate();
            }
    不要了就从list里面删除掉就行了。