Diferença entre ISupportInitialize (BeginInit / EndInit) e SuspendLayout / ResumeLayout
-
22-08-2019 - |
Pergunta
Alguém poderia explicar qual é a diferença entre usar os métodos de interface ISupportInitialize (BeginInit / EndInit) e usando SuspendLayout / ResumeLayout?
é ISupportInitialize SOMENTE usado durante a construção de inicialização / "inicial" ... ou ele pode ser usado mais tarde, quando você deseja adicionar novos controles filho de um controle pai existente?
As diferenças particulares?
Aprecio muito sua ajuda!
Obrigado,
Pato
Solução
O ISupportInitialize de interface vive no System.dll e é apenas um conceito bastante genérico no reino de componentes. Aliás, muitas partes do System.Windows.Forms são componentes e também Windows.Forms é o principal usuário das coisas ComponentModel.
Suspender / ResumeLayout é uma coisa Windows.Forms puro e realmente dizendo a um controle para não tentar e fazer gráficos enquanto você estiver por exemplo adicionando controles filho ou alterar as propriedades.
Outras dicas
código usado correta em VB.Net para isso, a maioria dos decompilers se esta errado.
CType(Me.pictureBox1, System.ComponentModel.ISupportInitialize).BeginInit()