我想做的是按下鼠标左键,让画布上红色的圆圈跟着鼠标跑,鼠标移动圆圈跟着跑已经通过FORM1_PAINT方法实现了,圆圈的是利用.NET的GDI+画的,       private Graphics GObject;
       private void Form1_Load(object sender, EventArgs e)
        {
               bmp = new Bitmap(this.ClientSize.Width, this.ClientSize.Height);
               GObject = Graphics.FromImage(bmp);
               //用画刷画一些其他颜色的图案填充画布,黄白黑蓝都有
               //用画笔画了一个红色的圆
               this.BackgroundImage = bmp;
        }现在的问题是,我想按下鼠标左键,把原先画布上红色的圆圈消除掉,但不能留白保留红色圆圈还没画上前的颜色,这该如何解决?欢迎大家发表意见~~

解决方案 »

  1.   

    要恢复颜色,你必须要先记录之前的颜色,可以通过SetPixel设置某个像素点的颜色
      

  2.   

    红色圆圈不要在form_load里画。
    到paint里绘制。
      

  3.   

      private Graphics GObject;
                       bmp = new Bitmap(this.ClientSize.Width, this.ClientSize.Height);   private void Form1_Load(object sender, EventArgs e)
            {               GObject = Graphics.FromImage(bmp);
                   //用画刷画一些其他颜色的图案填充画布,黄白黑蓝都有
                   //用画笔画了一个红色的圆
                   this.BackgroundImage = bmp;
            }
    这样一来, bmp 就一直存在了 Form_MouseMove()
    画bmp
    画红圈
      

  4.   


    画好图之后,如何才能清除呢,使用clear()怎么清除不了呢?