我有mdi表单需要很长时间才能加载,因此会给屏幕带来很多闪烁。 为了防止闪烁,我使用了这里描述的sendmessage API How do I suspend painting for a control and its children?。 我们暂停了该应用的主要表单的绘制。
除了遇到各种奇怪的行为外,这样做很好:
是因为我们冻结了主表格吗?
我们怎样才能在加载mdi表格时阻止任何绘图而没有任何副作用?
答案 0 :(得分:0)
在很多情况下,暂停/恢复很棒。
然而,对于加载表单,我更喜欢让绘图继续正常,但使用透明度隐藏表单直到完全加载。
Form f = new Form { Opacity = 0.01 };
f.Show();
f.BeginInvoke( new Action(() => f.Opacity = 0.99 ));