Compartir a través de


Procedimiento para colocar y cambiar el tamaño de un formulario (Windows Forms para .NET)

Cuando se crea un formulario, el tamaño y la ubicación se establecen inicialmente en un valor predeterminado. El tamaño predeterminado de un formulario suele ser un ancho y un alto de 800x500 píxeles. La ubicación inicial, cuando se muestra el formulario, depende de diferentes valores.

Puede cambiar el tamaño de un formulario en tiempo de diseño con Visual Studio y en tiempo de ejecución mediante código.

Cambio de tamaño con el diseñador

Después de agregar un formulario nuevo al proyecto, su tamaño se establece de dos maneras diferentes. En primer lugar, se puede establecer con los controles de tamaño del diseñador. Al arrastrar el borde derecho, el inferior o la esquina, puede cambiar el tamaño del formulario.

Haga clic con el botón derecho en el Explorador de soluciones para agregar un formulario nuevo a un proyecto de Windows Forms con los controles

La segunda manera de cambiar el tamaño del formulario mientras el diseñador está abierto es a través del panel de propiedades. Seleccione el formulario y, después, busque el panel Propiedades en Visual Studio. Desplácese hacia abajo hasta tamaño y expándala. Puede establecer manualmente el Ancho y el Alto.

Haga clic con el botón derecho en el Explorador de soluciones para agregar un formulario nuevo al proyecto de Windows Forms

Cambio del tamaño en el código

Aunque el diseñador establece el tamaño inicial de un formulario, puede cambiarlo a través del código. El uso de código para cambiar el tamaño de un formulario resulta útil cuando algo sobre la aplicación determina que el tamaño predeterminado del formulario es insuficiente.

Para cambiar el tamaño de un formulario, cambie Size, que representa el ancho y el alto del formulario.

Cambio de tamaño del formulario actual

Puede cambiar el tamaño del formulario actual siempre que el código se ejecute en el contexto del formulario. Por ejemplo, si tiene Form1 con un botón que, al hacer clic en él se invoca el controlador de eventos Click para cambiar el tamaño del formulario:

private void button1_Click(object sender, EventArgs e) =>
    Size = new Size(250, 200);
Private Sub Button1_Click(sender As Object, e As EventArgs)
    Size = New Drawing.Size(250, 200)
End Sub

Cambio de tamaño de otro formulario

Puede cambiar el tamaño de otro formulario después de crearlo mediante la variable que hace referencia al formulario. Por ejemplo, imagine que tiene dos formularios, Form1 (el formulario de inicio de este ejemplo) y Form2. Form1 tiene un botón que, cuando se hace clic en él, invoca el evento Click. El controlador de este evento crea una instancia del formulario Form2, establece el tamaño y, después lo muestra:

private void button1_Click(object sender, EventArgs e)
{
    Form2 form = new Form2();
    form.Size = new Size(250, 200);
    form.Show();
}
Private Sub Button1_Click(sender As Object, e As EventArgs)
    Dim form = New Form2 With {
        .Size = New Drawing.Size(250, 200)
    }
    form.Show()
End Sub

Si no se establece manualmente Size, el tamaño predeterminado del formulario es el que se haya establecido en tiempo de diseño.

Colocación con el diseñador

Cuando se crea y se muestra una instancia de formulario, la propiedad StartPosition determina su ubicación inicial. La propiedad Location contiene la ubicación actual del formulario. Las dos propiedades se pueden establecer a través del diseñador.

Panel Propiedades de Visual Studio con la posición inicial resaltada

Enumeración FormStartPosition Descripción
CenterParent El formulario está centrado en los límites de su formulario principal.
CenterScreen El formulario está centrado en la pantalla actual.
Manual La posición del formulario viene determinada por la propiedad Ubicación.
WindowsDefaultBounds El formulario se coloca en la ubicación predeterminada de Windows y se cambia de tamaño al tamaño predeterminado determinado por Windows.
WindowsDefaultLocation El formulario se coloca en la ubicación predeterminada de Windows y no se cambia de tamaño.

El valor CenterParent solo funciona con formularios de tipo secundario de interfaz de múltiples documentos (MDI), o bien un formulario normal que se muestra con el método ShowDialog. CenterParent no tiene ningún efecto en un formulario normal que se muestra con el método Show. Para centrar un formulario (la variable form) en otro (la variable parentForm), use el código siguiente:

form.StartPosition = FormStartPosition.Manual;
form.Location = new Point(parentForm.Width / 2 - form.Width / 2 + parentForm.Location.X,
                          parentForm.Height / 2 - form.Height / 2 + parentForm.Location.Y);
form.Show();
form.StartPosition = Windows.Forms.FormStartPosition.CenterParent.Manual
form.Location = New Drawing.Point(parentForm.Width / 2 - form.Width / 2 + parentForm.Location.X,
                                  parentForm.Height / 2 - form.Height / 2 + parentForm.Location.Y)

form.Show()

Colocación mediante código

Aunque se puede usar el diseñador para establecer la ubicación inicial de un formulario, se puede utilizar código para cambiar el modo de posición inicial o establecer la ubicación manualmente. El uso de código para colocar un formulario es útil si necesita colocar manualmente y cambiar el tamaño de un formulario con respecto a la pantalla u otros formularios.

Desplazamiento del formulario actual

Puede desplazar el formulario actual siempre que el código se ejecute en el contexto del formulario. Por ejemplo, si tiene Form1 con un botón que, al hacer clic en él, se invoca el controlador de eventos Click. En este ejemplo, el controlador cambia la ubicación del formulario a la parte superior izquierda de la pantalla mediante el establecimiento de la propiedad Location:

private void button1_Click(object sender, EventArgs e) =>
    Location = new Point(0, 0);
Private Sub Button1_Click(sender As Object, e As EventArgs)
    Location = New Drawing.Point(0, 0)
End Sub

Colocación de otro formulario

Puede cambiar la ubicación de otro formulario después de crearlo mediante la variable que hace referencia al formulario. Por ejemplo, imagine que tiene dos formularios, Form1 (el formulario de inicio de este ejemplo) y Form2. Form1 tiene un botón que, cuando se hace clic en él, invoca el evento Click. El controlador de este evento crea una instancia del formulario Form2 y establece la ubicación:

private void button1_Click(object sender, EventArgs e)
{
    Form2 form = new Form2();
    form.Location = new Point(0, 0);
    form.Show();
}
Private Sub Button1_Click(sender As Object, e As EventArgs)
    Dim form = New Form2 With {
        .Location = New Drawing.Point(0, 0)
    }
    form.Show()
End Sub

Si no se establece Location, la posición predeterminada del formulario se basa en lo que se estableció la propiedad StartPosition en tiempo de diseño.

Vea también