vb.net - 在 Winforms 中是否有等同于 trace=true 的东西?

标签 vb.net

我的 winform 加载时间太长。该窗体有无数的控件,我想看看每个控件需要多少时间来加载。 如果它是一个网络应用程序,我会直接打开跟踪,但我在 winforms 中找不到类似的东西。
有什么想法吗?
谢谢。

最佳答案

实际上加载速度慢的可能性很小。无论您创建多少控件,构造函数通常都很快。如果您有一个 Load 事件处理程序,您可以使用 Stopwatch 类或分析器轻松测量它花费的时间。

不,在具有大量控件的表单中感觉缓慢的最常见原因仅仅是绘制控件所花费的时间太长。这种情况发生得很快,您开始注意到 50 个控件。这大约与 Microsoft Outlook 使用的子窗口一样多。每个控件绘制自身所需的时间是可以预测的。它的外观越复杂,所需的时间就越长。您可以做的一个简单测试是观察最小化然后恢复表单需要多长时间。如果这也很慢,那么瓶颈就是绘画。

您无能为力使它神奇地更快。除了使用更少的控件。例如,标签对于它所做的工作来说特别昂贵,您可以用 OnPaint 方法中的一行代码替换它。像 Telerik 这样的组件供应商专门销售不使用窗口的控件。

关于vb.net - 在 Winforms 中是否有等同于 trace=true 的东西?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3416379/

相关文章:

asp.net - Visual Studio 2015 中的 "Visual Basic 10.0 does not support readonly auto-implemented properties"错误

vb.net - 参数 'Expressions'无法转换为 “DBNull”类型

vb.net - 跨线程操作无效... - VB.NET

arrays - 使用 vb.net 替换数组中的文本

c# - 如何提供实现 INotifyCollectionChanged 的​​只读集合

c# - .NET Winforms 中让用户输入时间范围的好方法?

vb.net - datagridview单元格中的换行符vb.net

asp.net - 将小整数值哈希为大的 16 位唯一数字

mysql - 如何让php代码以vbnet形式执行

mysql - 如何在每次读取时从行中添加值