方案一:开启双缓冲
①方法
SetStyle(ControlStyles.UserPaint, true);
SetStyle(ControlStyles.AllPaintingInWmPaint, true); // 禁止擦除背景.
SetStyle(ControlStyles.DoubleBuffer, true); // 双缓冲
②方法
this.DouleBuffered=true
方案二:自定义控件并重写CreateParams
新建用户控件,在新建的用户控件中重写 CreateParams,在调用用户控件的窗体后台也重写CreateParams。
protected override CreateParams CreateParams
{
get
{
CreateParams cp = base.CreateParams;
cp.ExStyle |= 0x02000000;//获取或设置拓展窗口风格值(一个组合位 bit)。 a|=b 等同于a=a|b "|"为按位或 二进制运算符 两个变量二进制对应位的数只要有一个为1 则结果为1
//a^b 异或位 两个二进制对应位数字相同则为0 不相同则为1
//-a 取反 二进制位为0则为1 原来为1则变0
return cp;
}
}