使用OnPaint函数来重绘在打开最小化窗体时依然无法看到重绘图形的解决办法

来源:互联网 发布:淘宝主图重力感应360度 编辑:程序博客网 时间:2024/05/01 06:00

C#中当窗体上图片较多,在窗体上绘图闪烁的厉害时经常会使用

 this.DoubleBuffered = true;

可以有效防止闪烁,但是对于图形,如果用户想打开最小化窗体时,程序会触发Paint事件,如下面的代码所示,程序员本意是想重绘所有图形,而此时,虽然执行了ReDrawAllGraphics()方法,但在窗体上依然无法看到重绘结果,除非拖动窗体或改变窗体大小。
   

  protected override void OnPaint(PaintEventArgs e)
        {
            base.OnPaint(e);
             //重绘所有图形
            ReDrawAllGraphics();
          
     }

问题就出在开启了双缓存功能,此时将this.DoubleBuffered改为 false即可。

原创粉丝点击