2009-05-18 6 views
10

Qualcuno potrebbe spiegare qual è la differenza tra l'utilizzo dei metodi di interfaccia ISupportInitialize (BeginInit/EndInit) e l'utilizzo di SuspendLayout/ResumeLayout?Differenza tra ISupportInitialize (BeginInit/EndInit) e SuspendLayout/ResumeLayout

ISupportInitialize SOLO utilizzato durante la costruzione/inizializzazione "iniziale" ... oppure può essere utilizzato in un secondo momento quando si desidera aggiungere nuovi controlli figlio a un controllo padre esistente?

Eventuali differenze?

Apprezzo molto il vostro aiuto!

Grazie,

Pato

+0

--------------- Oggi voglio implementare la creazione di controllo dinamico, convertendolo da codice designer. Quale ha la precedenza? BeginInit() o SuspendLayout()? ---------------------- ((ISupportInitialize) Process_GroupControl) .BeginInit(); Process_GroupControl.SuspendLayout(); – CallMeLaNN

risposta

4

L'interfaccia ISupportInitialize vive nel System.dll ed è solo un concetto abbastanza generico nel regno dei componenti. Per inciso, molte parti di System.Windows.Forms sono componenti e anche Windows.Forms è l'utente principale del componente ComponentModel.

Suspend/ResumeLayout è una pura cosa di Windows.Forms e dice davvero a un controllo di non provare a fare grafica mentre si è per esempio. aggiunta di controlli figlio o modifica delle proprietà.

-1

Correggere il codice utilizzato in VB.Net per questo, la maggior parte dei decompilatori ha sbagliato.

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