在窗体的构造函数中添加代码:
SetStyle(ControlStyles.UserPaint, true); SetStyle(ControlStyles.AllPaintingInWmPaint, true); // 禁止擦除背景. SetStyle(ControlStyles.DoubleBuffer, true); // 双缓冲
然后在构造函数下面,写以下方法:
#region 解决闪烁问题 protected override void WndProc(ref Message m) { if (m.Msg == 0x0014) // 禁掉清除背景消息 return; base.WndProc(ref m); } protected override CreateParams CreateParams { get { CreateParams cp = base.CreateParams; cp.ExStyle |= 0x02000000; return cp; } } #endregion
这种方法的确可以解决闪屏问题,在电脑上切换没有问题,但是在触控机上切换会有黑色的一条条,暂时还未解决,就是第一次进来的时候有,希望看到此贴的人,如果有什么好的方法,欢迎下方评论,谢谢
原文地址:https://www.cnblogs.com/aijiao/p/9956138.html
时间: 2024-10-22 16:16:55