请各位帮我指点一下:在一个窗体上放几十个控件会闪烁的问题
我想实现一个类似于连连看那种界面,即窗体上有很多小图块,每个小图块能响应事件并能更改自身样式. 
 我现在的方法是:将小图块作为一个控件,从Control继承,在控件上绘图,然后将几十个控件放到主窗体上. 
 现在的问题是:主窗体显示控件时速度慢,且闪烁.尤其是当窗体被其他程序遮挡后需要重绘时,简直惨不忍堵. 
 我知道双缓冲技术可以解决绘图的闪烁问题,但我这里不知道要怎样应用这个技术,因为不是直接绘图. 
 如果采用直接绘图方式,则每个小图块又如响应事件和改变样式呢? 
 请大家给点思路,谢谢
------解决方案--------------------这种做法不好,目前.NET里20个控件以上就开始慢了,何况连连看是N*M   
 参考我以前写的方块程序 
 http://download.csdn.net/source/162553   
 主要如何提高绘制的速度 
 连连看的区域判断和连线判断都是简单的事情
------解决方案--------------------mark
------解决方案--------------------this.SuspendLayout();   
 中间写绘制控件代码.   
 this.ResumeLayout(false); 
 this.PerformLayout();   
 每次OnPoint的时候调用一下OnFlash()   
 可以有效防止闪烁.
------解决方案--------------------楼上说的很对,this.SuspendLayout();表示挂起界面显示,期间发生的绘制的内容只会在内存中存在,绘制完成后再调用this.ResumeLayout(false);this.PerformLayout();一次性显示出来。这样就不会闪烁了。 
 InitialComponents()里面就是这么做的
------解决方案--------------------顶LSS!