다시, 컨테이너 상단에 도킹 할 때 flowlayoutpanel을 자동 크기 조정하려고 시도하는 것에 대해 this question 게시했습니다. 내가 달성하려고했던 것은 폼의 위쪽 가장자리를 가로 지르는 수평 (왼쪽에서 오른쪽으로) flowlayoutpanel을 설정하고, flowlayoutpanel 아래의 나머지 공간을 차지하는 datagridview를 설정하는 것이었다. 나는 flowlayoutpanel의 높이 속성을 자동 크기 조정하는 데 어려움을 겪고있었습니다. 게시 된 대답은 내가 뭘하려고했는지에 대해 완벽하게 작동했는데 ... 큰 문제였습니다.WinForms UserControl 레이아웃 자동 크기 조절 문제
혼자서는 충분히 떠날 수 없었습니다. 이제 한 단계 더 나아가서 UserControl에서 flowlayoutpanel을 래핑하려고합니다. 그러나, 이렇게하면 flowlayoutpanel이 더 이상 높이를 적절하게 조정하지 않게된다는 것을 발견했습니다. flowlayoutpanel 제대로 높이의 크기를 조정하지 않고, 어떤 이유를 들어
UserControl (Autosize = true, Dock = Top)
FlowLayoutPanel1 (Autosizse = true, Dock = Fill)
ComboBox1
ComboBox2
ComboBox3
DataGridView1 (Dock = Fill)
:
FlowLayoutPanel1 (Autosize = true, Dock = Top)
ComboBox1
ComboBox2
ComboBox3
DataGridView1 (Dock = Fill)
그리고 여기에는 UserControl을에 싸여 flowlayoutpanel 함께 :
여기 아름답게 작동하는 최초의 레이아웃은이다 양식 크기가 조정될 때. 이것은 재현하기가 매우 쉽습니다. Oh, 또한 ComboBoxes뿐만 아니라 FlowLayoutPanel의 내용도 될 수 있습니다.
거의 작동합니다. Resize 이벤트는 완벽하게 작동하지만 Resize 이벤트가 실행되도록 폼의 크기를 조정해야합니다. 이 크기 조정은 크기가 조정 된 후에뿐만 아니라 처음에 양식이 표시 될 때 발생하도록하고 싶습니다. UserControl.Load, Layout, VisibleChanged 및 Paint 이벤트를 성공하지 못했습니다. – echo
FlowLayoutPanel.SizeChanged 이벤트가 있다는 것을 알아 차릴 수 있습니까? 나는 VS가 설치된 컴퓨터 근처에 있지 않아서 직접 놀 수는 없다. FlowLayoutPanel.ControlAdded 이벤트를 시도 할 수도 있습니다. –
SizeChanged가 트릭을 수행했습니다. 감사 – echo