我遇到一个问题,一些计算机(很少)在使用我们的应用程序时开始闪烁。我在我们的应用程序的主要形式中发现了一些奇怪的代码:
protected override CreateParams CreateParams
{
get
{
var cp = base.CreateParams;
cp.ExStyle |= 0x02000000;//composite window. Composite windows do not render/flickr when controls are born. This speeds up loading.
return cp;
}
}
代码似乎来自他们发出警告的在线source:
但是你应该知道这个事实,这只适用于 完成所有控制绘画(在层次结构内)的环境 在WM_PAINT中。使用其他/异步方法的应用程序 渲染到层次结构内的控件可能会有他们的 此解决方案的问题导致不必要的行为。
WM_PAINT究竟是什么?它们是否意味着需要通过win32 API调用绘制所有控件,或者这是在Load事件中通常会发生什么?
有一张纸条说添加了代码以减少有关闪烁的错误报告......我只是想知道他们是否将这个婴儿从洗澡水中扔掉了。
答案 0 :(得分:1)
尝试使用DoubleBuffered = true;