屏幕闪烁问题

时间:2012-10-15 19:40:43

标签: c# winforms

我遇到一个问题,一些计算机(很少)在使用我们的应用程序时开始闪烁。我在我们的应用程序的主要形式中发现了一些奇怪的代码:

    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事件中通常会发生什么?

有一张纸条说添加了代码以减少有关闪烁的错误报告......我只是想知道他们是否将这个婴儿从洗澡水中扔掉了。

1 个答案:

答案 0 :(得分:1)

尝试使用DoubleBuffered = true;