C# Winform解决窗体大量控件加载闪烁卡顿的问题
1.重写 CreateParams 属性:通过重写CreateParams属性,为窗体或控件设置扩展窗口样式WS_EX_COMPOSITED,可启用系统级的双缓冲,能有效减少窗体和控件的闪烁,尤其是在控件较多的复杂界面中。
protected override CreateParams CreateParams { get { CreateParams cp = base.CreateParams; cp.ExStyle |= 0x02000000; // WS_EX_COMPOSITED return cp; } }
注意:我在使用上面的代码解决界面卡顿问题时候,设置了Form为无边框窗体,导致界面最小化后重新打开会出现界面显示不全的功能,需要进行一个强制重绘的动作
protected override void OnResize(EventArgs e) { base.OnResize(e); // 当窗口从最小化状态恢复时 if (WindowState == FormWindowState.Normal || WindowState == FormWindowState.Maximized) { // 强制重绘整个窗口 this.Invalidate(true); this.Update(); // 对于复杂界面,可额外调用Refresh()确保立即生效 this.Refresh(); } }

浙公网安备 33010602011771号