首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FlowLayoutPanel AutoSize高度不工作

FlowLayoutPanel AutoSize高度不工作
EN

Stack Overflow用户
提问于 2009-12-29 03:39:46
回答 1查看 6.6K关注 0票数 3

我正在开发一个UserControl,它由一堆在flowlayoutpanel中水平排列在控件顶部的ComboBoxes组成,还有一个直接位于flowlayoutpanel下方的datagridview,它占据了控件上的所有剩余空间。我需要能够轻松地隐藏所有的下拉列表,所以我有一个方向为==水平的SplitContainer,SplitContainer.Panel1中的==,以及SplitContainer.Panel2中的datagridview。

控件层次结构如下:

代码语言:javascript
复制
SplitContainer1
    SplitContainer1.Panel1
        FlowLayoutPanel1
            ComboBox1
            ComboBox2
            ComboBox3
    SplitContainer1.Panel2
        DataGridView1

由于flowlayoutpanel是水平方向的,并且水平空间有限,因此flowlayoutpanel的WrapContents属性为True,因此当控件太窄而无法容纳一行中的所有下拉列表时,下拉列表会自动换行到下一行。

我遇到的问题是,当flowlayoutpanel将其内容向下包装到下一行时,其Height属性不会相应地更改。flowlayoutpanel的包装行将被裁剪,并且不会强制拆分容器面板相应地增加高度。我曾尝试处理FlowLayoutPanel.Resize事件以增大和缩小SPlitContainer.SplitterDistance属性以容纳包装的内容,但FlowLayoutPanel.Height属性在包装内容时不会更改。我被难住了。FlowLayoutPanel是否已损坏?如果FlowLayoutPanel.Height始终保持不变,而不管内容包装如何,我如何调整FlowLayoutPanel的父容器的大小?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-12-29 04:01:57

看起来你把事情搞得太复杂了,不能满足你的需要。您可以使用内置坞站来完成所需的任务,而无需使用SplitContainer。将您的表单设置为:

代码语言:javascript
复制
FlowLayoutPanel1 (Autosizse = true, Dock = Top)
  ComboBox1
  ComboBox2
  ComboBox3
DataGridView1 (Dock = Fill)

然后,当您想隐藏FlowLayoutPanel1时,您只需切换Visible属性来隐藏/显示它。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1971157

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档