Windows 窗体应用程序性能

Shu*_*uft 5 performance winforms

我的应用程序表面有许多控件,并且在运行时动态添加了更多控件。

尽管我使用选项卡来限制显示的控件数量,并且也使用双缓冲,但在必须重绘(调整大小、最大化等)时它仍然闪烁和卡顿。

您有哪些提高 WinForms 应用程序性能的技巧和窍门?

vig*_*ity 5

我知道有两件事你可以做,但它们并不总是适用于所有情况。

  1. 如果您对每个控件 (myNewlyCreatedButton.Location.X/Y) 使用绝对定位,而不是使用流程布局面板或表格布局面板,您将获得更好的性能。WinForms 需要做更少的数学计算来确定控件应该放置在哪里。

  2. 如果在单个操作中添加/删除/修改大量控件,请在受影响的控件的容器(无论是面板还是整个窗体)上调用“SuspendLayout()”,并且当您“完成工作后,在同一面板上调用“ResumeLayout()”。如果不这样做,每次添加/删除/修改控件时,表单都必须执行一次布局,这会花费更多时间。请参阅:http://msdn.microsoft.com/en-us/library/system.windows.forms.control.suspendlayout (VS.80).aspx

不过,我不确定在调整窗口大小时如何应用这些方法。