Когда мне требуется такой тип поведения, я считаю, что TableLayoutPanel
полезен. Вы можете установить автоматическое изменение размера строк и столбцов, если удерживаете расширяемый контент - таким образом, когда вы скрываете контент, строка сворачивается.
Если у вас есть другой элемент управления (например, кнопка), вы можете использовать его для управления скрытым состоянием расширяемого содержимого.
Например, создать таблицу из 3 строк и 1 столбца. Добавьте кнопку фиксированного размера вверху и элемент авторазмера в середине. Сделайте размер последней строки в процентах (вам это нужно, чтобы что-то занимало оставшееся пространство, когда средний ряд обнулялся). Затем используйте кнопку, чтобы изменить видимое свойство всего, что у вас есть в среднем ряду.