2017-01-10 8 views
0

Я создаю динамически кнопки N радио на форме на этом пути:Динамическое создание радиокнопки и arange их в форме

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]); 
     } 
    } 

В этом случае радиокнопки все они созданы в одном ряду, но мне нужно, чтобы расположить их в несколько строк внутри определенного региона. Является ли это возможным? Какой подход использовать для такого рода проблем?

+1

TableLayoutPanel – Steve

+0

Или FlowLayoutPanel –

+0

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

ответ

1

Если вы хотите, чтобы исправить свой код без предложенных способов в комментариях

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

Мне это только нужно. Так просто. Thnx много. – Josef

 Смежные вопросы

  • Нет связанных вопросов^_^