我正在研究一个用户控件,它由一组组合框组成,这些组合框水平排列在flowlayoutpanel中的控件顶部,而在flowlayoutpanel正下方的一个DataGridView占据了控件上所有剩余的空间。我需要能够轻松隐藏所有下拉列表,因此我有一个方向为=水平的SplitContainer,其中FlowLayoutPanel位于SplitContainer.Panel1中,DataGridView位于SplitContainer.Panel2中。
控制层次如下:
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的父容器的大小?
谢谢