Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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...
width 100%
Estou usando Windows Forms. Não é WEB.
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?
sim mas ai ficaria muito espaço em branco na tela.
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.
Use os tamanhos dos botões em %