C#:使用双缓冲让界面绘制图形时避免闪烁

来源:互联网 发布:北京匡恩网络上市 编辑:程序博客网 时间:2024/04/29 23:34
SetStyle(   
                     ControlStyles.OptimizedDoubleBuffer   
                     | ControlStyles.ResizeRedraw   
                     | ControlStyles.Selectable   
                     | ControlStyles.AllPaintingInWmPaint   
                     | ControlStyles.UserPaint   
                     | ControlStyles.SupportsTransparentBackColor,   
                     true);
将这段代码加到用户控件的构造函数中即可生效。


这段代码的主要功能是开启了双缓冲。


平时我以为开双缓冲只需要设置ControlStyles.OptimizedDoubleBuffer为true而已。


但是经过实践才发现,起关键作用的是OptimizedDoubleBuffer和AllPaintingInWmPaint两个。


当这两个都为true的时候。闪烁几乎消失。效果非常好。
0 0
原创粉丝点击