问题描述
Winform客户端开发过程中,会遇到界面使用大量控件,在使用图片作为背景和将背景设为透明不透明时,程序打开时,会出现界面白屏和眼花缭乱的黑白方块刷新。
问题存在原因
个人理解:界面有很多控件,由于使用的Winfrom自带控件,在界面加在时,最先加载控件默认背景,加载完成之后再进行我们设置样式(背景图或者其他颜色)绘制,由于期间控件太多,处理时耗时严重,从而导致界面卡白闪屏现象。(2018.04.27 9:00AM)
解决方案
在From窗体上重写CreateParams这个参数的获取值,具体代码如下:
/// <summary>
/// 防止闪屏
/// </summary>
protected override CreateParams CreateParams
{
get
{
CreateParams cp = base.CreateParams;
cp.ExStyle |= 0x02000000;
return cp;
}
}
加入这段代码之后,问题完美解决了。