Partilhar via


Como posicionar e dimensionar um formulário (Windows Forms .NET)

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 800x500 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 Visual Studio e em tempo de execução com código.

Redimensione com o designer

Depois de adicionar um novo formulário ao projeto, o tamanho de um formulário é definido de duas maneiras diferentes. Primeiro, pode configurá-lo com os controlos de dimensionamento no designer. Ao arrastar 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 de formulários do Windows com alças

A segunda maneira de redimensionar o formulário enquanto o designer está aberto é através do painel de propriedades. Selecione o formulário e, em seguida, localize o painel Propriedades no Visual Studio. Desloque-se para baixo até tamanho e expanda-o. Você pode definir a Largura e Altura manualmente.

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

Redimensionar no código

Embora 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 em 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 sendo executado dentro do contexto do formulário. Por exemplo, se você tiver Form1 com um botão, quando clicado invoca o manipulador de eventos Click 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 depois que ele é 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 evento Click. O manipulador desse evento cria uma nova instância do formulário Form2, 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 o Size não for definido manualmente, o tamanho padrão do formulário será aquele que foi configurado durante a fase de design.

Posição com o designer

Quando uma instância de formulário é criada e exibida, o local inicial do formulário é determinado pela propriedade StartPosition. A propriedade Location indica a localização atual do formulário. Ambas as propriedades podem ser definidas através do designer.

Painel de Propriedades do Visual Studio com a posição de início realçada

FormStartPosition Enum Descrição
CenterParent O formulário está centrado dentro dos limites do seu formulário pai.
Ecrã central O formulário está centralizado no ecrã atual.
Manual A posição do formulário é determinada pela Localização propriedade.
WindowsDefaultBounds O formulário é posicionado no local padrão do Windows e é redimensionado para o tamanho padrão determinado pelo Windows.
Localização Padrão do Windows O formulário é posicionado no local padrão do Windows e não é redimensionado.

O valor CenterParent só funciona com formulários que sejam um formulário filho MDI (interface de múltiplos documentos) ou um formulário normal exibido com o método ShowDialog. CenterParent não tem nenhum efeito em um formulário normal que é exibido com o método Show. 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 código para posicionar um formulário é ú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 sendo executado dentro do contexto do formulário. Por exemplo, se tiveres Form1 com um botão nele que, ao ser clicado, invoca o manipulador de eventos Click. O manipulador neste exemplo altera o local do formulário para o canto superior esquerdo da tela definindo a propriedade 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

Posicionar um formulário diferente

Você pode alterar o local de outro formulário depois que ele é 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 evento Click. O manipulador desse evento cria uma nova instância do formulário Form2 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 no valor ao qual a propriedade StartPosition foi definida no momento do design.

Ver também