Compartilhar via


Como posicionar e dimensionar um formulário

Quando um formulário é criado, o tamanho e o local são inicialmente definidos como um valor padrão. O tamanho padrão de um formulário geralmente é uma largura e altura de 800 x 500 pixels. O local inicial, quando o formulário é exibido, depende de algumas configurações diferentes.

Você pode alterar o tamanho de um formulário em tempo de design com o Visual Studio e em tempo de execução com código.

Redimensionar com o designer gráfico

Depois que um novo formulário é adicionado ao projeto, o tamanho de um formulário é definido de duas maneiras diferentes. Primeiro, você pode defini-lo com os controles de redimensionamento no designer. Arrastando a borda direita, a borda inferior ou o canto, você pode redimensionar o formulário.

Clique com o botão direito do mouse no Gerenciador de Soluções para adicionar um novo formulário ao projeto do Windows Forms

A segunda maneira de redimensionar o formulário enquanto o designer estiver aberto é por meio do painel de propriedades. Selecione o formulário e, em seguida, localize o painel Propriedades no Visual Studio. Vá até tamanho e expanda. Você pode definir a largura e a altura manualmente.

Clique com o botão direito do mouse no gerenciador de soluções para adicionar um novo formulário ao projeto do Windows Forms

Redimensionar dentro do código

Mesmo que o designer defina o tamanho inicial de um formulário, você pode redimensioná-lo por meio do código. Usar código para redimensionar um formulário é útil quando algo sobre seu aplicativo determina que o tamanho padrão do formulário é insuficiente.

Para redimensionar um formulário, altere o Size, que representa a largura e a altura do formulário.

Redimensionar o formulário atual

Você pode alterar o tamanho do formulário atual, desde que o código esteja em execução dentro do contexto do formulário. Por exemplo, se você tiver Form1 com um botão, quando clicado invocará o Click manipulador de eventos para redimensionar o formulário:

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

Redimensionar um formulário diferente

Você pode alterar o tamanho de outro formulário após ele ser criado usando a variável que faz referência ao formulário. Por exemplo, digamos que você tenha dois formulários( Form1 o formulário de inicialização neste exemplo) e Form2. Form1 tem um botão que, quando clicado, invoca o Click evento. O manipulador desse evento cria uma nova instância do Form2 formulário, define o tamanho e o exibe:

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

Se Size não estiver definido manualmente, o tamanho padrão do formulário será aquilo que foi definido durante o tempo de desenvolvimento.

Posição com o designer

Quando uma instância de formulário é criada e exibida, o local inicial do formulário é determinado pela StartPosition propriedade. A Location propriedade contém o local atual do formulário. Ambas as propriedades podem ser definidas por meio do designer.

painel de propriedades do Visual Studio com a posição inicial realçada

Enumeração FormStartPosition Descrição
CenterParent O formulário está centralizado dentro dos limites do formulário pai.
CenterScreen O formulário é centralizado na exibição atual.
Manual A posição do formulário é determinada pela propriedade Location .
WindowsDefaultBounds O formulário é posicionado no local padrão do Windows e é redimensionado para o tamanho padrão determinado pelo Windows.
LocalizaçãoPadrãoDoWindows O formulário é posicionado no local padrão do Windows e não é redimensionado.

O valor CenterParent só funciona com formulários que são ou um formulário filho de MDI (interface de documento múltiplo) ou um formulário normal exibido usando o método ShowDialog. CenterParent não tem nenhum efeito em um formulário normal exibido com o Show método. Para centralizar um formulário (form variável) para outro formulário (parentForm variável), use o seguinte código:

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()

Posição com código

Embora o designer possa ser usado para definir o local inicial de um formulário, você pode usar o código para alterar o modo de posição inicial ou definir o local manualmente. Usar o código para posicionar um formulário será útil se você precisar posicionar e dimensionar manualmente um formulário em relação à tela ou a outros formulários.

Mover o formulário atual

Você pode mover o formulário atual desde que o código esteja em execução dentro do contexto do formulário. Por exemplo, se você tiver Form1 com um botão, isso quando clicado invocará o Click manipulador de eventos. O manipulador neste exemplo altera o local do formulário para o canto superior esquerdo da tela definindo a Location propriedade:

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

Posicionar um formulário diferente

Você pode alterar o local de outro formulário após ele ser criado usando a variável que faz referência ao formulário. Por exemplo, digamos que você tenha dois formulários( Form1 o formulário de inicialização neste exemplo) e Form2. Form1 tem um botão que, quando clicado, invoca o Click evento. O manipulador desse evento cria uma nova instância do Form2 formulário e define o local:

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

Se o Location não estiver definido, a posição padrão do formulário será baseada na configuração da propriedade StartPosition em tempo de desenvolvimento.

Consulte também