我并没有找到一个很好的解释,来阐明Control.SuspendLayout
和BeginUpdate
这两种方法(通常在类似于ListView
、ComboBox
、ListBox
等列表控件中看到),除了它们都会提高性能。
据我所知:
它们都暂停绘制,直到所有要显示的项目都加载完毕,并在此之后重新绘制。
通常情况下,当将控件添加到容器控件(如
Panel
、GroupBox
等)时,会调用SuspendLayout
,而当将非控件项目(如对象)添加到列表控件(如ListBox
)时,则使用BeginUpdate
。
但为什么会有这两个调用,它们做的事情又有什么不同呢?
类似地,还有ResumeLayout
和EndUpdate
的等效方法。
SuspendLayout
方法,而它们并不执行任何布局操作。我猜这是一个虚方法,在子类(如 ListBox)中没有被重写或实现,因此什么也不做。 - nawfal