Necesito una forma de centrar la ventana actual. Entonces, por ejemplo, si un usuario presiona un botón, quiero que la ventana se centre en la pantalla. Sé que puede usar la propiedad startposition, pero no puedo encontrar una manera de usarla que no sea cuando la aplicación se inicia por primera vez. Entonces, ¿cómo puedo centrar el formulario en la pantalla?
129
Respuestas:
Utilice el método Form.CenterToScreen () .
fuente
Usando la propiedad ventana de
Seleccione el formulario → vaya a la ventana de propiedades → seleccione "posición de inicio" → seleccione el lugar que desee.
Programáticamente
Form form1 = new Form(); form1.StartPosition = FormStartPosition.CenterScreen; form1.ShowDialog();
Nota: No llame directamente a Form.CenterToScreen () desde su código. Lea aquí .
fuente
Una sola línea:
fuente
Screen screen = Screen.FromControl(this);
aquí.Screen.FromControl(this)
pero lo mantengoPrimaryScreen
. (Estoy desarrollando una aplicación bajo restricción de hardware) :-)En formularios Windows Forms:
En WPF:
Eso es todo lo que tienes que hacer...
fuente
Si desea centrar sus ventanas durante el tiempo de ejecución, use el siguiente código, cópielo en su aplicación:
Y finalmente llame al método anterior para que funcione:
fuente
this.Location = Screen.AllScreens[0].WorkingArea.Location;
antes, otras respuestas no funcionan en el caso de mover la aplicación cuando se usan varias pantallas.Centrar un formulario en tiempo de ejecución
1. Establezca la siguiente propiedad del formulario:
-> StartPosition: CenterScreen
-> WindowState: Normal
Esto centrará el formulario en tiempo de ejecución, pero si el tamaño del formulario es mayor de lo esperado, realice el segundo paso.
2. Agregar tamaño personalizado después de InitializeComponent ();
fuente
Centra cualquier ventana que pueda manejar
fuente
Utilizar este:
fuente
Use la propiedad Ubicación del formulario. Ajústelo al punto superior izquierdo deseado
x = (desktop_width - form_witdh) / 2 deseado
deseado y = (desktop_height - from_height) / 2
fuente
Puede usar
Screen.PrimaryScreen.Bounds
para recuperar el tamaño del monitor principal (o inspeccionar elScreen
objeto para recuperar todos los monitores). Úselos conMyForms.Bounds
para averiguar dónde colocar su formulario.fuente
Podría no ser completamente relevante para la pregunta. Pero tal vez pueda ayudar a alguien.
La pantalla central no funciona para mí. La razón fue que estaba agregando controles dinámicamente al formulario. Técnicamente cuando estaba centrado era correcto, basado en el formulario antes de agregar los controles.
Así que aquí estaba mi solución. (Debería funcionar con ambos escenarios)
Entonces notará que estoy usando "PreferredSize" en lugar de usar simplemente Altura / Ancho. El tamaño preferido mantendrá el valor del formulario después de agregar los controles. Donde la altura / ancho no lo harán.
Espero que esto ayude a alguien .
Salud
fuente
En el caso de monitores múltiples y si prefiere centrarse en el monitor / pantalla correctos, puede probar estas líneas:
fuente