我用VS2019开发的Winform项目中,有一个窗体中textBox控件较多,运行时有闪烁现象,
- 设置DoubleBuffered=true,未起作用;
- 构造函数中增加代码:
this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);
this.SetStyle(ControlStyles.OptimizedDoubleBuffer, true);
也不起作用;
- 重载CreateParams:
代码中直接粘贴下面代码(显示0引用不用管,实际运行时执行了多次):
protected override CreateParams CreateParams
{
get
{
CreateParams paras = base.CreateParams;
paras.ExStyle |= 0x02000000;
return paras;
}
}
解决了窗体闪烁问题!
下面对这段程序进行说明:
通过修改窗体的创建参数 (CreateParams
) 来设置扩展窗口样式 (ExStyle
),具体来说是添加了 WS_EX_COMPOSITED