在我的应用程序中,我不断从一个控件移动到另一个控件.我创造了没有.用户控件,但在导航过程中我的控件闪烁.更新需要1或2秒.我试着设置这个
SetStyle(ControlStyles.OptimizedDoubleBuffer, true);
or
SetStyle(ControlStyles.UserPaint, true);
SetStyle(ControlStyles.AllPaintingInWmPaint, true);
SetStyle(ControlStyles.DoubleBuffer, true);
Run Code Online (Sandbox Code Playgroud)
但它没有帮助......每个控件都有相同的背景图像和不同的控件.那么它的解决方案是什么..
谢谢.
我有一个应用程序,它有很多控件.并且它有大量的闪烁,特别是在启动时.
我将此修复程序应用于它.
protected override CreateParams CreateParams
{
get
{
CreateParams cp = base.CreateParams;
cp.ExStyle |= 0x02000000; // WS_EX_COMPOSITED
return cp;
}
}
Run Code Online (Sandbox Code Playgroud)
这很有效 - 闪烁的数量减少了令人难以置信的数量.但是,副作用是当我将鼠标移动或单击它们时,窗口右上角的最小化,最大化和关闭按钮不会生成动画(尽管它们仍在工作).这给了应用程序一种感觉.
如何在保留最大化,最小化和关闭按钮的可用性的同时保留WS_EX_COMPOSITED?
这种情况发生在Windows XP上.正如@fallenidol所指出的,这不是Windows 7上的问题.