2017-01-10 2 views
0

Je crée des boutons radio dynamiquement N sur le formulaire sur cette voie:dynamique créant radiobuttons et arange eux à l'intérieur sous forme

private void CreateRadioButton() 
    { 
     int rbCount = 40; 

     System.Windows.Forms.RadioButton[] radioButtons = new System.Windows.Forms.RadioButton[rbCount]; 

     for (int i = 0; i < rbCount; ++i) 
     { 
      radioButtons[i] = new RadioButton(); 
      radioButtons[i].Text = Convert.ToString(i); 
      int x = 514 + i*37; 
      int y = 20; 
      radioButtons[i].Location = new System.Drawing.Point(x,y); 
      radioButtons[i].Size = new Size(37, 17); 
      this.Controls.Add(radioButtons[i]); 
     } 
    } 

Dans ce cas, les boutons radio sont tous créés dans une rangée mais je dois les organiser plusieurs rangées dans une région spécifique. C'est possible? Quelle approche utiliser pour ce genre de problème?

+1

TableLayoutPanel – Steve

+0

Ou FlowLayoutPanel –

+0

Ou [RadioButtonList] (http://stackoverflow.com/a/41355419/3110834). –

Répondre

1

Si vous souhaitez fixer votre code sans les moyens suggérés dans les commentaires

private void CreateRadioButton() 
{ 
    int rbCount = 40; 
     int numberOfColumns = 8; 
     var radioButtons = new RadioButton[rbCount]; 
     int y = 20; 
     for (int i = 0; i < rbCount; ++i) 
     { 
      radioButtons[i] = new RadioButton(); 
      radioButtons[i].Text = Convert.ToString(i); 
      if (i%numberOfColumns==0) y += 20; 
      var x = 514 + i%numberOfColumns * 37; 
      radioButtons[i].Location = new Point(x, y); 
      radioButtons[i].Size = new Size(37, 17); 
      this.Controls.Add(radioButtons[i]); 
     } 
} 
+0

C'est juste que j'avais besoin. Si simple. Thnx beaucoup. – Josef