加载表单更顺畅 - 如何在显示之前加载表单?

时间:2014-01-09 15:59:07

标签: c# winforms resize

我正在开发一个具有mainform的项目,然后是其他许多形式。每当我创建一个新表单并将其放在mainForm上时,我都会遇到闪烁问题。我的所有表单都设置为没有FormBorderStyle,但每当我加载表单时,边框会在消失前闪烁一秒钟。我对此做了一些研究,发现了一个我能够使用的功能,通过覆盖创建参数减少了闪烁(见下文)

 protected override CreateParams CreateParams
    {
        //this is used to reduce the flicker created when loading a new form
        get
        {
            CreateParams cp = base.CreateParams;
            cp.ExStyle |= 0x02000000;  // Turn on WS_EX_COMPOSITED
            return cp;
        }
    }

这样可以很好地消除每次创建表单时发生的闪烁,但是它会强制表单需要调整大小。所以最终发生的事情是我的屏幕闪烁不同。这次它将表格加载到原始大小,然后填充屏幕,然后我需要它来加载所有信息,然后将其显示在屏幕上。

Picture loads the form...

Picture then resizes the form

有没有人知道一个函数,它基本上告诉表单在显示之前要等到某一点?

我正在尝试将程序全屏显示并占用主显示器的整个空间,因此我无法真正做任何事情来启动更大或类似的形式,因为它只会调整较小屏幕,仍然不会摆脱负载 - 调整大小方面。

我是否已覆盖所有加载函数以更改所有表单的位置和大小,以便正确填充屏幕,是否会导致它?

0 个答案:

没有答案