2010-06-25 13 views
6

Estoy trabajando en un proyecto C# grande con muchas formas de ganar que, aunque puede cambiar el tamaño del formulario, los elementos del formulario no se escalan.¿La mejor manera de hacer que las formas de cambio se puedan cambiar?

¿Cómo puedo hacer que los elementos del formulario (como el datagridview, el área de texto, etc.) se escalen cuando el usuario cambia el tamaño del formulario?

Casi todas las formas de subclase de una forma específica, así que si hay algo que puedo hacer en la clase base, sería genial.

Respuesta

15

Debe establecer las propiedades Anchor y Dock en los controles en los formularios.

La propiedad Anchor controla qué bordes de un control están "atados" o "atados" a los bordes correspondientes de su forma.
Por ejemplo, si configura Anchor en Bottom, la distancia entre el borde inferior del control y la parte inferior de su elemento primario no cambiará, por lo que el control se moverá hacia abajo a medida que cambie el tamaño del formulario.
Si configura Anchor en Top | Bottom, el control cambiará de tamaño verticalmente a medida que cambia el tamaño del formulario.

Para realizar un cambio de tamaño de control con el formulario, configure Anchor en los cuatro lados o establezca Dock en Fill.

+2

Es bastante intuitivo una vez que empiezas a usarlo. Por ejemplo, si tiene los botones Aceptar/Cancelar en la esquina inferior derecha de su cuadro de diálogo, establezca la propiedad 'Ancla' en Inferior y Derecha para que se arrastren correctamente en el formulario. –

+0

Entonces, ¿tengo que hacerlo en cada formulario? – Malfist

+0

@Malfist: Sí; por formulario y por control. .Net no descubrirá mágicamente qué controles se deben estirar y qué controles alinear a qué lados. – SLaks

5

Utilice el Ancla y Dock propiedades.

Ancla le permite fijar lados específicos del control a los lados del control principal.

El Dock enlazará todo el control a un lado del control principal o se puede configurar para que complete el contenido del control principal.

Por lo general, solo necesita configurar el Ancla en la parte inferior y derecha del control principal, pero se vuelve más difícil cuando tiene controles uno al lado del otro, luego debe cambiar manualmente el tamaño de los controles en el evento OnResize de formularios para que escalar naturalmente juntos.

Cuestiones relacionadas