C# 刷新页面出现闪屏问题总结
1、第一点是最基本的操作,可在构造函数里加上以下代码:

2、代码:
//在构造函数里加上以下代码:
this.DoubleBuffered = true;//设置本窗体
SetStyle(ControlStyles.UserPaint, true);
SetStyle(ControlStyles.AllPaintingInWmPaint, true); // 禁止擦除背景.
SetStyle(ControlStyles.DoubleBuffer, true); // 双缓冲
3、上一步操作 双缓存也可以直接在指定控件的属性栏设置,如下图:

4、在该父窗体里可添加防止闪烁的代码,如下图:

5、代码:
// 防止闪屏
protected override CreateParams CreateParams
{
get
{
CreateParams cp = base.CreateParams;
cp.ExStyle |= 0x02000000;
return cp;
}
}
6、当然,在晚上我还看到其他方法,也可试试,如下图:


7、代码:
protected override CreateParams CreateParams
{
get
{
CreateParams cp = base.CreateParams;
cp.ExStyle |= 0x02000000;
if (this.IsXpOr2003 == true)
{
cp.ExStyle |= 0x00080000;
this.Opacity = 1;
}
return cp;
}
} //防止闪烁
private Boolean IsXpOr2003
{
get
{
OperatingSystem os = Environment.OSVersion;
Version vs = os.Version;
if (os.Platform == PlatformID.Win32NT)
if ((vs.Major == 5) && (vs.Minor != 0))
return true;
else
return false;
else
return false;
}
}