0

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

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

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

提前致谢。

4

3 回答 3

4

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

于 2012-04-17T09:14:23.563 回答
2

您需要描述您的应用程序,一些可能的原因可能是:

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

  • 视图上的控件太多(只需将它们组织在 TabControl 的不同 TabPages 中。如果控件太多,请避免使用它们,因为没有任何用户需要它们都是当代的。

  • 最后也是最重要的:是SuspendLayout()/ ResumeLayout() 在加载的开始和结束时。

希望这可以帮助。

于 2012-04-17T09:15:24.247 回答
0

一个主意:

也许把你所有的LinkLabels 放在 a 上Panel,将Panels设置DockFill,然后将 s 添加PanelForm.

于 2012-04-17T13:03:33.613 回答