2010-10-01 9 views
33

Sto leggendo su SuspendLayout() e ResumeLayout(). Quello che non riesco a capire è, perché dovrei fare/usare questo. So che lo usi quando aggiungi controlli in runtime a un control-container.C# Perché utilizzare SuspendLayout()?

Ha qualcosa a che fare con le proprietà di impostazione come Dock, Anchor, Location, ecc

Ma io non capisco quale sia il valore supplementare è di Suspend- e ResumeLayout(). Di cosa si occupano questi metodi?

risposta

50

Fondamentalmente è se si desidera modificare più proprietà correlate al layout o aggiungere più figli, ma evitare che il sistema di layout reagisca ripetutamente alle modifiche. Lo vuoi a solo esegui il layout alla fine, quando tutto è "pronto".

+2

Ancora non capisco cosa faccia SuspendLayout(). Intendo perché usare 'SuspendLayout()' Puoi anche impostare queste proprietà senza usare 'SuspendLayout()'. – Martijn

+7

@Martijn: Sì, puoi impostarli ... e il sistema di layout perderà tempo (e potrebbe rendere lo schermo brutto) cambiando il layout mentre imposti le varie proprietà - invece di farlo * una volta * quando Ho finito di impostare tutto. Supponiamo che tu abbia un layout complicato che cerca di distribuire lo spazio in modo uguale e che stai aggiungendo 100 elementi ... lo vuoi * davvero * per farlo funzionare dopo aver aggiunto il primo, dopo che hai aggiunto il secondo, poi dopo aver aggiunto il terzo ecc.? –

+0

Come ha scritto Jon Skeet: Quando si impostano le proprietà multipl (o si inseriscono più righe in una griglia), la schermata non viene aggiornata per ogni singola modifica, ma viene aggiornata solo quando viene chiamato ResumeLayout. Salva le prestazioni e lo sfarfallio dispari. –

Problemi correlati