点button后,用GDI+在picturebox里绘图,怎样才能使画的图能自动重绘?

解决方案 »

  1.   

    调用picturebox的Invalidate()方法.
      

  2.   

    Invalidate()以后图片就没了啊,我代码写在button的mouseclick事件里的,只执行一次的
      

  3.   

    调用picturebox的Invalidate()方法.
    正解,c#的系统可比你想象中的聪明多啦,我们正是利用这一点,做到自动重绘的,因为我们故意把它弄成无效的了, 所以系统"不服气",就把它给重绘一遍,大概原理就是这样了
      

  4.   

    把你的GDI+在picturebox里绘图代碼寫在override OnPaint 里,Invalidate()只是觸發OnPaint
      

  5.   

    啊, 我想到了,楼主的问题我刚学c#时也遇到了, 恩, 楼主怕是画图的代码写错地方了, 即使你想点button就在pictureBox里画图,画图的程序也是要写在pictureBox的Paint函数里的,而button事件只是设一个标记而已,这样重绘时才不会消失
    给你说详细一点,举个例子
    定义一个public bool drawAgian = false;
    在button点击事件里
       drawAgain = true;
       pictureBox1.invalidate();
    在pictureBox1的Paint事件里
       if( drawAgain)
       {
           // 你要画的东西
        }