A назад, я отправил this question о попытке получить flowlayoutpanel для правильной авторазработки при закреплении в верхней части контейнера. То, что я пытался выполнить, - установить горизонтальную (слева направо) flowlayoutpanel, охватывающую верхний край формы, и datagridview, занимающий остальную часть доступного пространства под панелью flowlayout. У меня возникла проблема с тем, чтобы свойство высоты flowlayoutpanel было автоматически настроено так, как должно было бы. Опубликованный ответ работал отлично для того, что я пытался выполнить, что было замечательно ...WinForms UserControl Layout Autosize Problems
Невозможно оставить достаточно достаточно одного, теперь я пытаюсь сделать еще один шаг и обернуть панель flowlayout в UserControl. Однако я обнаружил, что это приводит к тому, что flowlayoutpanel больше не изменяет его высоту.
Вот первый макет, который прекрасно работает:
FlowLayoutPanel1 (Autosize = true, Dock = Top)
ComboBox1
ComboBox2
ComboBox3
DataGridView1 (Dock = Fill)
А вот с FlowLayoutPanel завернутые в UserControl:
UserControl (Autosize = true, Dock = Top)
FlowLayoutPanel1 (Autosizse = true, Dock = Fill)
ComboBox1
ComboBox2
ComboBox3
DataGridView1 (Dock = Fill)
по какой-либо причине, FlowLayoutPanel не изменяет размер ее высоту правильно когда форма изменяется. Это довольно легко воспроизвести. Кроме того, содержимое FlowLayoutPanel может быть чем угодно, а не только ComboBoxes.
Это почти работает. Событие Resize отлично работает, но мне нужно изменить размер формы, чтобы запустить событие Resize. Я бы хотел, чтобы эта настройка размера происходила, когда форма изначально показана, а не только после ее изменения. Я пробовал события UserControl.Load, Layout, VisibleChanged и Paint без каких-либо успехов. – echo
Я замечаю, что есть событие FlowLayoutPanel.SizeChanged, может быть, дайте мне попробовать? Я не рядом с машиной с настройкой VS, поэтому я не могу играть с ней сам. Вы также можете попробовать событие FlowLayoutPanel.ControlAdded –
SizeChanged сделал трюк. благодаря – echo