Разница между ISupportInitialize (BeginInit/EndInit) и SuspendLayout/ResumeLayout
Может кто-нибудь объяснить, в чем разница между использованием методов интерфейса ISupportInitialize (BeginInit/EndInit) и использованием SuspendLayout/ResumeLayout?
Является ли ISupportInitialize ТОЛЬКО используемым во время инициализации конструкции/ "начальной"... или может использоваться позже, когда вы хотите добавить новые дочерние элементы управления в существующий родительский элемент управления?
Любые особые отличия?
Я очень ценю вашу помощь!
Спасибо,
Пато
Ответы
Ответ 1
Интерфейс ISupportInitialize живет в System.dll и представляет собой довольно общую концепцию в области компонентов. Кстати, многие компоненты System.Windows.Forms являются компонентами, а также Windows.Forms является основным пользователем материалов ComponentModel.
Приостановить/ResumeLayout - это чистая вещь Windows.Forms и действительно говорит, что элемент управления не пытается и не делает графику, пока вы, например. добавление дочерних элементов управления или изменение свойств.
Ответ 2
Исправьте используемый код в VB.Net для этого, большинство декомпиляторов считают это неправильным.
CType(Me.pictureBox1, System.ComponentModel.ISupportInitialize).BeginInit()