У меня есть следующая структура в форме Windows:
Form (AutoResize = true, AutoSizeMode = GrowAndShrink)
FlowLayout (AutoResize = true, AutoSizeMode = GrowAndShrink)
GroupBox
GroupBox
GroupBox
StatusStrip
Я ожидаю, что изменение видимости групповых полей должно привести к тому, что окно привязывается к новому размеру, чтобы освободить пустое пространство или разместить новые элементы управления. Однако это не происходит автоматически. Если я сворачиваю в трей, а затем восстанавливаю форму (т.е. переключаю Visible, ShowInTaskbar, WindowState = Normal/Minimized), то, когда она появится снова, она будет обновлена правильно. Еще одна вещь, которая запускает его, — это обновление содержимого в StatusStrip внизу страницы (отображение метки, изменение индикатора выполнения и т. д.). Я пробовал различные вдохновленные вуду комбинации Invalidate/Update/OnResize и т. д., но я чувствую, что упускаю что-то более фундаментальное, и надеюсь, что кто-то увидит очевидный недостаток в том, что я описываю.
Все мои обновления виджетов в форме находятся внутри InvokeRequired/Invoke, если это уместно.