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.
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.
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.
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
.NET Desktop feedback