我正在研究一个 UserControl,它由一堆 ComboBoxes 组成,这些 ComboBoxes 在 flowlayoutpanel 中的控件顶部水平排列,而在 flowlayoutpanel 正下方的 datagridview 占据了控件上的所有剩余空间。我需要能够轻松隐藏所有下拉列表,所以我有一个方向 == 水平的 SplitContainer,SplitContainer.Panel1 中有 flowlayoutpanel,SplitContainer.Panel2 中有 datagridview。
控制层次结构如下:
SplitContainer1
SplitContainer1.Panel1
FlowLayoutPanel1
ComboBox1
ComboBox2
ComboBox3
SplitContainer1.Panel2
DataGridView1
由于 flowlayoutpanel 是水平方向且水平空间有限,因此 flowlayoutpanel 的 WrapContents 属性为 True,因此当控件太窄而无法将所有下拉菜单放在一行中时,下拉菜单会向下换行。
我遇到的问题是,当 flowlayoutpanel 将其内容向下包装到下一行时,它的 Height 属性不会相应地改变。flowlayoutpanel 的包裹行被剪裁,并且不强制 splitcontainer 面板相应地增加高度。我尝试处理 FlowLayoutPanel.Resize 事件以增大和缩小 SPlitContainer.SplitterDistance 属性以适应包装的内容,但是包装内容时 FlowLayoutPanel.Height 属性不会改变。我难住了。FlowLayoutPanel 坏了吗?如果 FlowLayoutPanel.Height 始终保持不变,无论内容包装如何,我如何调整 FlowLayoutPanel 的父容器的大小?
谢谢