sono venuto con lo stesso dubbio, con il contributo di corrente sulla questione ho potuto venuto con:
int altura = this.Size.Height;
int largura = this.Size.Width;
int alturaOffset = 10;
int larguraOffset = 10;
int larguraBotao = 100; //button widht
int alturaBotao = 40; //button height
for (int i = 0; i < 50; ++i)
{
if ((larguraOffset+larguraBotao) >= largura)
{
larguraOffset = 10;
alturaOffset = alturaOffset + alturaBotao;
var button = new Button();
button.Size = new Size(larguraBotao, alturaBotao);
button.Name = "" + i + "";
button.Text = "" + i + "";
//button.Click += button_Click;//function
button.Location = new Point(larguraOffset, alturaOffset);
Controls.Add(button);
larguraOffset = larguraOffset + (larguraBotao);
}
else
{
var button = new Button();
button.Size = new Size(larguraBotao, alturaBotao);
button.Name = "" + i + "";
button.Text = "" + i + "";
//button.Click += button_Click;//function
button.Location = new Point(larguraOffset, alturaOffset);
Controls.Add(button);
larguraOffset = larguraOffset+(larguraBotao);
}
}
il comportamento previsto è che, questo genererà tasti utilizzando lo stato attuale della vostra dimensione della finestra, rompendo sempre una linea quando il pulsante accanto supererebbe il Margi destra n della tua finestra.
Devi assegnare un'altezza e una larghezza, o non saranno visibili –
e ancora una volta hai una risposta valida, ma non l'hai accettata o hai spiegato perché non è adatta ... – Adam