日期:2014-05-18  浏览次数:20843 次

关于 Invalidate() 导致所有控件无效并重绘的问题???
private void timer2_Tick(object sender, EventArgs e)
  {
  Invalidate();
  }  
GDI+ 时钟一直在闪烁
怎么才能使 GDI+ 绘制的时钟看起来不闪烁????

------解决方案--------------------
这样是强制整个窗体无效了,窗体上所有控件都要重绘。
可以控制让时钟控件无效(比如让时钟所属的容器无效),
或者在窗体Paint时判断无效区,针对性地绘制。

对时钟这样频繁重绘的区域,还可以采用双缓冲机制绘制时钟。
------解决方案--------------------
在哪画的始终,就执行谁的Invalidate,另外开启他的双缓冲