Разница между ISupportInitialize (BeginInit / EndInit) и SuspendLayout / ResumeLayout - PullRequest
10 голосов
/ 18 мая 2009

Может кто-нибудь объяснить, в чем разница между использованием методов интерфейса ISupportInitialize (BeginInit / EndInit) и использованием SuspendLayout / ResumeLayout?

Используется ли ISupportInitialize ТОЛЬКО во время построения / "начальной" инициализации ... или его можно использовать позже, когда вы хотите добавить новые дочерние элементы управления в существующий родительский элемент управления?

Какие-то особые различия?

Я очень ценю вашу помощь!

Спасибо,

Пато

Ответы [ 2 ]

4 голосов
/ 19 мая 2009

Интерфейс ISupportInitialize живет в System.dll и является довольно общей концепцией в области компонентов. Кстати, многие части System.Windows.Forms являются компонентами, а также Windows.Forms является основным пользователем материала ComponentModel.

Suspend / ResumeLayout - это чисто Windows.Forms и действительно говорит элементу управления не пытаться делать графику, пока вы, например, добавление дочерних элементов управления или изменение свойств.

0 голосов
/ 14 ноября 2015

Исправьте используемый код в VB.Net для этого, большинство декомпиляторов ошибаются.

CType(Me.pictureBox1, System.ComponentModel.ISupportInitialize).BeginInit()
...