【发布时间】:2012-10-29 13:54:20
【问题描述】:
我需要给一个父控件添加很多控件。
但我发现如果在将这些控件添加到父级之前和之后添加ParentControl.SuspendLayout 和ParentControl.ResumeLayout,我会使用秒表来测量刻度:
如果我删除代码ParentControl.SuspendLayout 和ParentControl.ResumeLayout,它会更快。为什么会这样?
所以SuspendLayout 和ResumeLayout 不应该减少添加子控件的时间,对吧?那么使用SuspendLayout 和ResumeLayout 有什么好处,或者换句话说,如果我不使用SuspendLayout 和ResumeLayout 而是直接将子控件添加到父母,有什么不好的?
【问题讨论】:
-
您要添加多少控件?如果只是几个,则没有必要,但是如果您要添加数百/数千个,则更有可能看到差异。另外,如果您计时,两次之间的区别是什么?它只是很小的一部分(足以只是执行时间的随机变化)还是真的很重要?
-
您使用的是哪些类型的控件? here 描述了类似的问题。
-
是的,我添加了数百个控件。
-
我认为您需要显示两个版本的代码,以便尝试真正的答案
-
没有代码很难确定。我使用相同的方法,在 SuspendLayout 时非常快速地添加数百个动态控件而没有问题
标签: c# winforms layout controls suspend