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