Как сделать RadioButtons взаимоисключающими

У меня есть 7 RadioButtons на форме

3 из них относятся к одной группе и 4 из них к другой группе

Я хочу, чтобы RadioButtons были взаимоисключающими внутри группы.

Этого можно добиться, поместив их в два групповых ящика,

Есть ли способ добиться этого, не помещая их в контейнер, такой как групповой ящик?


person Gaddigesh    schedule 27.04.2010    source источник
comment
Что ж, вы можете зацикливаться на событиях и изменять поведение по умолчанию, но вопрос в том, почему? Вы можете сделать его похожим на одну группу, просто настроив свойства границы   -  person IMHO    schedule 27.04.2010


Ответы (2)


Поместить их в Panel было бы проще всего, но если вам действительно не нужен элемент управления контейнером, вы можете использовать метод, который использовал я. Создайте свой собственный CustomRadioButton, наследуя от RadioButton, и добавьте свойство Group (string, int, не имеет значения). Когда срабатывает событие CheckChanged, если кнопка только что была проверена, найдите в коллекции Controls родительского контейнера другие элементы управления CustomRadioButton с таким же значением для Group и снимите с них галочку. Я использовал это раньше, и это работает хорошо. На самом деле, просто используйте Panel.

person Community    schedule 27.04.2010
comment
Хмммм... У меня нет проблем с установкой панели, но могу ли я сделать панель прозрачной???? В конечном счете, конечный пользователь не должен чувствовать, что радиокнопки помещены в контейнер, он должен чувствовать, что все кнопки (разной группы) находятся только в форме. - person Gaddigesh; 27.04.2010
comment
Вы можете сделать панель прозрачной или того же цвета, что и форма, на которой она находится. - person ; 27.04.2010

Лучший способ сделать это — использовать GroupBox< /а>

person Ahsan Saleem    schedule 15.09.2013