2010-10-01 40 views
33

Estoy leyendo acerca de SuspendLayout() y ResumeLayout(). Lo que no puedo entender es, ¿por qué debería hacer/usar esto? Sé que lo usas cuando agregas controles en tiempo de ejecución a un contenedor de control.C# ¿Por qué usar SuspendLayout()?

Tiene algo que ver con la configuración de propiedades como Dock, Anchor, Location, etc.

Pero no entiendo cuál es el valor adicional es de suspendiendo y ResumeLayout(). ¿De qué se ocupan estos métodos?

Respuesta

50

Básicamente es así si desea ajustar varias propiedades relacionadas con el diseño, o agregar varios elementos secundarios, pero evite que el sistema de diseño reaccione repetidamente a sus cambios. Desea que solo realice el diseño al final, cuando todo esté "listo".

+2

Todavía no entiendo qué hace 'SuspendLayout()'. Quiero decir por qué usar 'SuspendLayout()' También puedes establecer estas propiedades sin usar 'SuspendLayout()'. – Martijn

+7

@Martijn: Sí, puede configurarlos ... y el sistema de diseño perderá tiempo (y posiblemente hará que la pantalla se vea fea) cambiando el diseño mientras configura las distintas propiedades, en lugar de hacerlo * una vez * cuando He terminado de configurar todo. Supongamos que tiene un diseño complicado que trata de distribuir el espacio por igual, y está agregando 100 elementos ... ¿* realmente * quiere que funcione ese espacio después de haber agregado el primero, luego después de que haya agregó el segundo, luego después de haber agregado el tercero, etc. –

+0

Como escribió Jon Skeet: Cuando configura propiedades multiples (o inserta varias filas en una vista de cuadrícula) la pantalla no se actualiza para cada cambio, sino que se actualiza una vez que se llama a ResumeLayout. Ahorra rendimiento y el extraño parpadeo de la pantalla. –