private void Form1_Paint(object sender, PaintEventArgs e)
        {
           
           //其中drf是一个bool变量,用来确定窗体的绘制内容
            if (drf)
            {
               Render1();
               
            }
            else { Render();};
          
        }
当drf为真时执行Render1()方法,但是为什么窗体还是上一次显示的结果。并没有显示Render1()执行的效果,但是一移动窗体,就显示Render1()的效果,有哪位帮忙指导一下。

解决方案 »

  1.   

    补充一下,是改变窗体的大小时才会显示Render1()的执行效果。
      

  2.   

    当drf变更后调用窗体的Invalidate方法
      

  3.   

    //窗体改变时会触发消息 AutoSizeChanged ,Paint是窗口初绘消息           AutoSizeChanged += new EventHandler(OnAutoSizeChanged);
             public void OnAutoSizeChanged(object sender, EventArgs e)
            {
               Redraw(cTemp);
            }
      

  4.   

    那说明你的窗体重绘事件没有被触发,你改变窗体大小后,触发了该事件,所以才执行到代码,切换一下窗口再回来也会触发
    如果想不作其他操作就触发该事件,那就在 MoseMove事件里写 this.Refresh();吧