winforms - Windows 窗体应用程序性能

标签 winforms performance

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

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

提高 WinForms 应用程序性能的提示和技巧是什么?

最佳答案

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

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

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

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

关于winforms - Windows 窗体应用程序性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44914/

相关文章:

php - 如何优化 MySQL (CentOS)

java - 检查单选按钮的状态

c# - 捕获未处理的异常,仍然显示 “program stopped working” 对话框

c# - 为什么(发件人为 "something")在 C# Windows Forms 应用程序中具有空值

performance - 在多核机器上扩展多线程应用程序

oracle - 为什么此查询比 ANSI JOIN 版本执行得更好?

java - 如何减少 GC CPU 使用率的峰值

swift - 在 Swift 中,这两种情况下的轮换有区别吗

.net - sendmessage api 选择组合框控件的特定索引

c# - 处理拖动时是否可以更改鼠标光标(来自 DragOver 事件)?