У меня была похожая задача, и мое решение следующее:
Добавьте TableLayoutPanel к вашей форме (или любому контейнеру).
Установить количество столбцов и строк TableLayoutPanel в 1 и размер до 100%.
Установить Dock на Fill.
Установить GrowStyle на fixedSize.
Установить AutoSizeв true.
Затем программно добавьте все три формы / элементы управления, одну из которых вы должны показать в зависимости от выбора переключателя.Убедитесь, что виден только один из них.Это может быть сделано с начальным FirstControl.Show ();а затем при каждом событии RadioButton скрыть текущее и показать другое.вы можете «запомнить» в локальной переменной (скажем: «nowVisibleControl» ссылку, которая видна в данный момент)
примечание: если вы захотите .Show () более одного за раз.затем TableLayoutPanel сработает за исключением того, что он заполнен и не может больше добавлять элемент.
PS В моем собственном примере у меня есть TableLayoutPanel в окне MDI и три формы, которые заменяют друг друга при нажатии на них, поэтому ядумаю, копирование моего исходного кода усложнит «устный» пример.
PPS Из моего опыта Visual Studio иногда делает странные вещи в режиме дизайна.Мне пришлось удалить и повторно добавить TableLayoutPanel, чтобы правильно установить свойства и получить результаты как в конструкторе, так и во время выполнения.Поэтому, если на экране дизайнера не отображаются значения autosize или absolute / процентные значения, это может быть проблемой для проектировщика, а не для вас.ПРОСТО УДАЛИТЕ ЭТО И ПЫТАЙТЕСЬ.