做了个多控件的winform发现闪烁太过严重
且从form中设置双缓存无任何卵用
遂用了以下办法解决闪烁问题
protected override CreateParams CreateParams
{
get
{
CreateParams cp = base.CreateParams;
cp.ExStyle |= 0x02000000;
return cp;
}
}
protected override void WndProc(ref Message m)
{
if (m.Msg == 0x0014) // 禁掉清除背景消息
return;
base.WndProc(ref m);
}
但发现会导致窗口不显示,
窗口能被截图拦截等窗口捕捉软件捕捉到,好像完全透明的状态
多次尝试解决,在窗体激活事件中添加
Refresh强制控件无效并立即重绘自己和任何子控件
private void Form1_Activated(object sender, EventArgs e)
{
this.Refresh();
}