Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Como redimensionar controles quando o Form for redimencionado

Boa noite a todos. Como faço para redimensionar os controles de um Form, quando este form for redimensionado? Exemplo, tenho o Form desenhado e nele tenho varios controsles, como botões, caixas de texto, labels, entre outros. Quando eu maximizar ou mudar a borda do meu Form, como faço para os controles sigam um padrão de tamanho dimensionável de acordo com o Form? Obs.: Em VB.NET

1 resposta
solução!

Olá Washington!

Existem algumas formas de trabalhar com redimensionamento de controles dentro de um formulário.

Propriedade Dock

Você deve ter reparado que os controles geralmente tem uma propriedade Dock. Ela é útil quando você quer criar um preenchimento do controle no controle container dele. Por exemplo, se você atribuir a propriedade para Top, seu controle irá ficar anexado pelo topo no container. Caso você aumente a largura do formulário, a largura do controle setado com Dock = Top também irá seguir.

Faça um experimento. Coloque um Button no seu formulário e altere as propriedades Dock dele para ver como funciona.

Propriedade Anchor

Por padrão, os controles geralmente ficam como Anchor = Top, Left. Significa que elas estão ancoradas em relação ao pai por esses eixos. Isso significa que se você redimensionar o formulário pelo topo, a quantidade de pixels entre o topo do seu botão e o topo do formulário permanerá a mesma, assim como acontece com o lado esquerdo do formulário e o lado esquerdo do seu botão (devido ao Left).

Mas o que aconteceria se você mudasse o Anchor para Top, Left, Bottom, Right? Ele tentaria manter a distância constante entre todos os lados do container. Isso significa que o controle ia aumentar ou diminuir de acordo com o redimensionamento.

Programaticamente

Você consegue capturar o evento de redimensionamento do formulário. O evento é o Resize (Mas poderia ser feito com o SizeChanged também). Com isso, você pode redimensionar os controles lá dentro através da propriedade Left, Top, Height e Width.

Segue um exemplo centralizando um botão no formulário:

 Private Sub Form1_Resize(sender As Object, e As EventArgs) Handles MyBase.Resize
        Me.Button1.Top = (Me.ClientSize.Height - Me.Button1.Height) / 2
        Me.Button1.Left = (Me.ClientSize.Width - Me.Button1.Width) / 2
 End Sub

Da mesma forma que você poderia redimensionar usando a propriedade Width e Height do botão.