gpt4 book ai didi

winforms - FlowLayoutPanel AutoSize 高度不起作用

转载 作者:行者123 更新时间:2023-12-02 00:42:59 34 4
gpt4 key购买 nike

我正在研究一个 UserControl,它由一组水平排列在 flowlayoutpanel 中控件顶部的 ComboBoxes 和一个位于 flowlayoutpanel 正下方的 datagridview 组成,它占据了控件上的所有剩余空间。我需要能够轻松隐藏所有下拉菜单,所以我有一个带有 Orientation == Horizo​​ntal 的 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 的父容器的大小?

谢谢

最佳答案

看起来你让这对于你需要的东西来说有点太复杂了。您可以使用内置对接来完成您想要的操作,而无需使用 SplitContainer .像这样设置您的表单:

FlowLayoutPanel1 (Autosizse = true, Dock = Top)
ComboBox1
ComboBox2
ComboBox3
DataGridView1 (Dock = Fill)

那么当你想隐藏时 FlowLayoutPanel1你可以切换 Visible隐藏/显示它的属性。

关于winforms - FlowLayoutPanel AutoSize 高度不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1971157/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com