2015-08-01 2 views
1

У меня есть TableLayoutControl, который я динамически заполняю переключателями. Есть четыре столбца. Я хочу, чтобы переключатели из столбцов 1-3 формировали группы в каждой строке и переключатели в столбце 4, чтобы сформировать одну группу. Другими словами, горизонтальные группы в каждой строке и одна вертикаль в последнем столбце. Как я могу это сделать?Отдельные группы переключателей в TableLayoutPanel

+0

Нет, это невозможно. [Radioobutton] (https://msdn.microsoft.com/de-de/library/system.windows.forms.radiobutton%28v=vs.110%29.aspx) не обладает свойством «group», к сожалению , Разумеется, группировка также должна быть явно __visible__ пользователю .. - Поэтому вам нужно будет добавить две панели вместо этого. – TaW

+0

Я полагаю, мне не нужно две панели, а панель для каждой строки. – grzegorz

+0

Да, я не поймал четыре строки. – TaW

ответ

1

Я думаю, что лучший способ - поместить в каждую ячейку таблицы некоторый контроль группировки (панель, groupBox, flowLayoutPanel, ...) и добавить радиокнопки в эту группу.

+0

Я думаю, мне нужно уменьшить количество столбцов до двух и поместить одну панель в каждую ячейку первой строки, а затем добавить три переключателя на каждую панель. – grzegorz

+0

@grzegorz советует вам использовать FlowLayoutPanel для динамического добавления управления - это очень подходящий элемент управления – Backs

0

Предположим, вы знаете, какие строки и столбцы каждой RadioButton (например, при создании одного имени он rdb2_3 означает, что она принадлежит к строке 2 столбца 3 TableLayoutControl), добавить CheckedChanged событие для всех из них нравится:

rdb.CheckedChanged += new EventHandler(rdb_CheckedChanged); 

    void rdb_CheckedChanged(object sender, EventArgs e) 
    { 
     if (((RadioButton)sender).Checked) 
      // Check if this RadioButton belong to column 4th so it belong to the column group 
      if (((RadioButton)sender).Name.Substring(((RadioButton)sender).Name.Length - 1) == "4") 
      { 
       // Set Checked = false for all RadioButton in column 4 except this one 
      } 
      else 
      { 
       // Set Checked = false for all RadioButton in this RadioButton's row 4 except this one 
      } 
    } 
Смежные вопросы