Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

João Fernandes dos Santos

Botões autosize e position no form.

Recommended Posts

pessoal tenho um form que esta neste modelo, veja a imagem

 

https://uploaddeimagens.com.br/imagens/botoes-png--5

 

quero que os botões ocupem toda a parte cinza do form, ou seja que ele ajuste seu tamanho e a posição.

dependendo da resolução do computador.

 

ja tentei de tudo que pesquisei mas não deu certo. alguem tem alguma dica?

 

 

Valeu...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode o evento Resize do Form, para isso também, mas, você tem que pensar em algumas coisas. Que ao redimensionar os botões, um não pode sobrepor o outro.

 

Então, creio que redimensionar somente a largura, sem pensar na posição do botão, poderá acarretar nesse conflito.

 

Não seria melhor você deixar um tamanho único e centralizar os botões na form?

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim mas ai ficaria muito espaço em branco na tela.

 

Mas, esticar demais os botões nesse espaço não ficaria esteticamente desproporcional?

 

Por que você não usa outros controles para agrupar os botões (como o GroupBox), separando por categoria, por exemplo? Creio que, inserindo controles desse tipo preencheria mais a tela, além de deixar mais apresentável o programa.

 

No mais, não consegui pensar em outra forma a não ser modificar o tamanho de cada botão manualmente.

 

Coloquei 4 botões em sequência, tendo cada botão a propriedade Anchor como Top, Left, Right, utilizei o evento Resize da Form, com o seguinte código:

private void Form1_Resize(object sender, EventArgs e)
{
    //Divide a largura do botão por uma quantidade determinada 
    //(ou pela quantidade de botões na linha)
    button1.Width = button1.Width / 3;
            
    button2.Width = button2.Width / 3;
    //Altera a posição do button2 tendo como referência o botão 1.
    button2.Location = new Point(button1.Location.X + button1.Width, button2.Location.Y);

    //Repete para todos, sucessivamente.

    button3.Width = button3.Width / 3;
    button3.Location = new Point(button2.Location.X + button3.Width, button3.Location.Y);

    button4.Width = button4.Width / 3;
    button4.Location = new Point(button3.Location.X + button3.Width, button4.Location.Y);
}

Não sei se teria um modo mais fácil, contudo, funcionou para preencher a tela.

Todavia, não modifiquei a altura do botão, pode ser necessário.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.