У меня была похожая задача сделать, и мое решение заключается в следующем:
Добавить TableLayoutPanel в форму (или контейнер).
Столбцы и строки таблицы TableLayoutPanel подсчитываются до 1 и до 100%.
Комплект док-станции для заполнения.
Set GrowStyle to fixedSize.
Установите AutoSize в true.
Затем программным образом добавьте все три формы/элементы управления, один из которых должен отображаться в зависимости от выбора переключателя. Убедитесь, что только один из них виден. Это можно сделать с помощью начального FirstControl.Show(); а затем на каждом событии RadioButton скрыть текущий и показать другое. вы можете «запомнить» в локальной переменной (скажем: «в настоящее времяVisibleControl» ссылка, которая в настоящее время видима)
примечание: если вы будете .Показать() несколько раз. то TableLayoutPanel очистит исключение, которое заполнено, и не может добавить больше элемента.
P.S. В моем собственном примере у меня есть TableLayoutPanel в окне MDI и три формы, которые заменяют друг друга на нажатия кнопок на них, поэтому я думаю, что копирование исходного кода осложнит «вербальный» пример.
P.P.S. По моему опыту Visual Studio иногда делает некоторые странные вещи в режиме дизайна. Мне пришлось удалить и повторно добавить TableLayoutPanel, чтобы правильно установить свойства и получить результаты как в дизайнере, так и во время выполнения. Поэтому, если значения autoize или absolute/percent не отображаются на экране дизайнера, это может быть проблемой дизайнеров, а не вашей. ТОЛЬКО УДАЛЯЙТЕ ЭТО И ВОЗВРАЩАЙТЕСЬ.
спасибо, он может скрыть панель, но не ячейка .. ячейка все еще там? Я что-то упускаю? – Bohn
@BDotA, вы уверены, что ваш ряд авторизован? – arbiter
ну, в окне свойств TableLayoutPanel было свойство Rows, я нажал на него, открылось другое диалоговое окно. мои строки были перечислены там. там были варианты переключателей CellType, которые я думаю. поэтому я нажал на каждую из своих строк и выбрал AutoSize для этого ... это то, что я сделал. – Bohn