我不希望从上到下逐步绘制表单。我想让它一下子显示出来

时间:2012-04-17 09:11:58

标签: c# .net winforms visual-studio

我有一个Windows窗体,我在c#代码中添加了许多LinkLabel。 我遇到的问题是,当显示表单时,它会逐渐从上到下淹没在屏幕上。但我希望它突然而快速地出现。我该怎么办? 我甚至试过这个,但没有帮助: 我将可见性设置为false。然后用所有标签填写表格。然后叫这个节目。

(我new()和show()我的表单在另一种形式的标签的MouseEnter事件中。)

编辑:我也尝试过DoubleBuffer。没有帮助。 我应该注意,我不在乎整个表格是否有延迟。我只想让它一下子出现。因为在我的情况下,一点延迟是不可避免的。导致从网络检索数据。

提前致谢。

3 个答案:

答案 0 :(得分:4)

作为猜测,请尝试在表单上设置DoubleBuffered = true。这应该是在将整个表面绘制到屏幕上之前将其渲染到内存缓冲区。但是,更好的解决方案是找出导致表单渲染速度变慢的原因。除非在UI线程中发生很多逻辑,否则表单通常是不可察觉的。

答案 1 :(得分:2)

您需要对自己的应用进行分析,其中一些可能的原因可能是:

  • 加载期间的密集数据填充量(可以通过控件数量减少,需要显示,加载或在另一个线程中运行的数据量)

  • 对视图的控制太多(只是在TabControl的不同TabPages中组织它们。如果控制太多,请避免使用它们,因此没有任何用户需要它们都是当代的。< / p>

  • 最后也是最重要的一点:SuspendLayout()/ ResumeLayout()在加载和最后的结合中。

希望这有帮助。

答案 2 :(得分:0)

一个想法:

也许将您的所有LinkLabel放在Panel上,将Panel的{​​{1}}设置为Dock,然后添加{{1}转到Fill