我正在开发一个具有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;
}
}
这样可以很好地消除每次创建表单时发生的闪烁,但是它会强制表单需要调整大小。所以最终发生的事情是我的屏幕闪烁不同。这次它将表格加载到原始大小,然后填充屏幕,然后我需要它来加载所有信息,然后将其显示在屏幕上。
有没有人知道一个函数,它基本上告诉表单在显示之前要等到某一点?
我正在尝试将程序全屏显示并占用主显示器的整个空间,因此我无法真正做任何事情来启动更大或类似的形式,因为它只会调整较小屏幕,仍然不会摆脱负载 - 调整大小方面。
我是否已覆盖所有加载函数以更改所有表单的位置和大小,以便正确填充屏幕,是否会导致它?