最近一直用winform做一个小程序,用到了很多自定义控件以及窗体,但是在程序加载时候,控件总是先闪出背景,然后才加载背景。百度了很多方法,基本都是在自定义控件里用双缓冲,但是问题依旧存在,经过一段时间的探索,发现了问题所在,在程序中用到了很多panel并且设置了背景图片,这是导致问题的原因,winform自带的panel不具有双缓冲功能,因此可自定义panel,然后在在构造函数里加上以下代码:
///解决闪的问题
this.SetStyle(
ControlStyles.AllPaintingInWmPaint |
ControlStyles.OptimizedDoubleBuffer |
ControlStyles.ResizeRedraw |