我自己写了一个简单的Windows的控件是一个画圆的小控件,可是放到Winform上后,当改变控件大小时,里面画的圆却不能即时刷新改变(是根据控件宽度和高度调整圆的半径的),不知是什么原因,
请高手指点,
(比如,刚放到WinForm中时控件大小为 150,150,当我在form中托动使它大小变为200,200,里面的画的圆也应改变直径的)当把此form关闭再打开时就刷新过来了,请高手指点是什么原因。

解决方案 »

  1.   

    你在控件的OnResize事件中进行重绘就行了:
                       protected override void OnResize(EventArgs e)
    {
    base.OnResize (e);
    this.Invalidate();
    }
      

  2.   

    要在控件的OnPaint事件函数里定义相应的重画步骤。
      

  3.   

    我也不太清楚是什么原因,不过可以试试 this.refresh(),或是this.Invalidate(加个参数)
      

  4.   

    一定要refresh一下,
    onpaint事件只是自己进行绘制上次保存的那份,
    而没有自我触发的能力,所以一定要refresh。
    这个问题,我也困惑了很久。还是试验双缓存的时候搞定了。
      

  5.   

    如果是直接画到屏幕上,onpaint事件会被触发,
    那样就可以起到刷新作用
    这两种情况不同,一定要注意了:)
      

  6.   

    如果是直接画到屏幕上,onpaint事件会被触发,
    那样就可以起到刷新作用
    这两种情况不同,一定要注意了:)