好了,言归正传,说说dotnet控件是怎么解决闪烁问题的。既然双缓存机制是如此的有效而且实现又不是很复杂,微软一定是很乐意将它作为自己的标准。最近研究dotnet控件的制作,看了看control的文档,才发现微软在dotnet控件的基类Control类里已经提供的这种机制。现在如果你想在自己的控件里实现双缓存机制,只需要简单的设置控件的风格就可以了。如果你的控件是派生于Control类的话,你只需要在你的控件造函数里加上下边几行代码:
SetStyle(ControlStyles.DoubleBuffer, true);
SetStyle(ControlStyles.UserPaint, true);
另外你也可以使用下面的代码:
this.DoubleBuffered =true;