在窗体的构造函数中添加代码:
- SetStyle(ControlStyles.UserPaint, true);
- SetStyle(ControlStyles.AllPaintingInWmPaint, true); // 禁止擦除背景.
- SetStyle(ControlStyles.DoubleBuffer, true); // 双缓冲
- View Code
然后在构造函数下面, 写以下方法:
- #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
- View Code
这种方法的确可以解决闪屏问题, 在电脑上切换没有问题, 但是在触控机上切换会有黑色的一条条, 暂时还未解决, 就是第一次进来的时候有, 希望看到此贴的人, 如果有什么好的方法, 欢迎下方评论, 谢谢
来源: http://www.bubuko.com/infodetail-2846154.html