net formularios formulario escala dentro control centrar automático ajuste abrir c# .net winforms center-align

c# - formularios - ¿Controles de centrado dentro de un formulario en.NET(Winforms)?



centrar un control c# (10)

Esta pregunta ya tiene una respuesta aquí:

Estoy tratando de centrar un control de tamaño fijo dentro de un formulario.

Por interés, ¿hay una forma no idiota de hacer esto? Lo que realmente quiero es algo análogo a la propiedad text-align css.

Por el momento, estoy configurando la propiedad de relleno del formulario circundante a un tamaño adecuado y configurando la propiedad Dock del control para que se complete.


Como no dice si el formulario puede cambiar de tamaño o no, hay una manera fácil si no le importa cambiar el tamaño (si le importa, vaya a la solución Mitch Wheats):

Seleccione el control -> Formato (opción de menú) -> Centro en ventana -> Horizontal o verticalmente


Encontré una excelente manera de hacer esto y funcionará con múltiples controles. Agregue un TableLayout con 3 columnas. Haga que la columna central tenga un tamaño absoluto (sin importar cuánto espacio necesite). Establezca las dos columnas exteriores al 100%. Agregue un Panel a la columna central y agregue los controles que necesite y colóquelos donde desee. Ese panel central ahora permanecerá centrado en su forma.


Implica observarlo (bueno, supongo que podría sacar una calculadora y calcular), pero simplemente inserte dicho control en el formulario y luego elimine cualquier anclaje (ancla = Ninguno).


Para centrar el Botón en el panel o en otro contenedor, siga este paso:

  1. En el momento del diseño, establezca la posición
  2. Ir al anclaje de propiedades del botón y establecer este valor como la imagen de seguimiento


Propiedad superior izquierda y superior si la ventana principal está maximizada.


Puede lograr esto con el uso de anclajes . O más precisamente, el no uso de ellos .

Los controles están anclados por defecto a la parte superior izquierda del formulario, lo que significa que cuando se cambiará el tamaño del formulario, su distancia desde el lado superior izquierdo del formulario permanecerá constante. Si cambia el anclaje de control a la esquina inferior izquierda, el control mantendrá la misma distancia desde el lado inferior y el lado izquierdo del formulario cuando cambie el tamaño del formulario.

Al girar el anclaje en una dirección mantendrá el control centrado en esa dirección al cambiar el tamaño.

NOTA: Desactivar el anclaje mediante la ventana de propiedades en VS2015 puede requerir el ingreso de Ninguno, Ninguno (en lugar del valor predeterminado Arriba, Izquierda)


Puede poner el control que desea centrar dentro de un Panel y establecer los valores de relleno izquierdo y derecho en algo más grande que el predeterminado. Siempre que sean iguales y su control esté anclado a los lados del Panel, aparecerá centrado en ese Panel. Luego puede anclar el Panel contenedor a su principal según sea necesario.


puede poner todos sus controles en el panel y luego escribir un código para mover su panel al centro de su formulario.

panelMain.Location = new Point(ClientSize.Width / 2 - panelMain.Size.Width / 2, ClientSize.Height / 2 - panelMain.Size.Height / 2); panelMain.Anchor = AnchorStyles.None;


Además, si desea alinearlo al centro de otro control:

//The "ctrlParent" is the one on which you want to align "ctrlToCenter". //"ctrlParent" can be your "form name" or any other control such as "grid name" and etc. ctrlToCenter.Parent = ctrlParent; ctrlToCenter.Left = (ctrlToCenter.Parent.Width - ctrlToCenter.Width) / 2; ctrlToCenter.Top = (ctrlToCenter.Parent.Height - ctrlToCenter.Height) / 2;


myControl.Left = (this.ClientSize.Width - myControl.Width) / 2 ; myControl.Top = (this.ClientSize.Height - myControl.Height) / 2;