我正在尝试创建一个我最容易描述为像资源管理器视图的表单,并排放置两个面板(左侧是文件夹列表,右侧显示所选文件夹中的文件) )。
左侧面板是固定宽度的,并且停靠在表单的左侧。它工作正常,与此无关。
右侧面板位于左侧面板的右侧,填充表格的其余部分,并固定顶部,左侧,底部和底部。这样,当表格调整大小时,它会继续占据整个表格,但左侧面板占用的部分除外。它还将AutoScroll
设置为True
,以便每当内容太大而无法容纳时,它会自动显示滚动条。那部分也可以。
因为我想在不同时间在右侧面板中显示不同的内容,所以我创建了一个普通的Panel
作为容器,并且正在为每种不同类型的内容使用子面板。任何时候都只能看到其中一个子面板。
我(有时)想要在右侧面板中显示的一个东西非常类似于资源管理器中的“图标”视图 - 即一堆文件图标,为此FlowLayoutPanel
个声音完美,因为我希望它们从左到右排列,然后根据需要包装到新行。
我原本以为这正是FlowLayoutPanel
的设计目标,但我无法让它发挥作用! [我将Dock
的{{1}}属性设置为FlowLayoutPanel
,以便它使用父Fill
中的所有可用空间。]实际发生的是它只显示所有单行中的图标,永远不会包装它们。我最终在父Panel
上使用了水平滚动条,因为Panel
不合适。
我认为这可能是因为包含FlowLayoutPanel
的父Panel
没有固定的大小(因为它会随着表单的增长而缩小),所以我想FlowLayoutPanel
1}}决定它可以承受多大的宽度,它决定它可以像它喜欢的那样宽。但是,这不是很有帮助。
我有没有办法说服FlowLayoutPanel
它应该只与其父FlowLayoutPanel
一样宽?
答案 0 :(得分:0)
首先确保启用了FLP的WrapContents
选项。
如果您已经这样做了,我的猜测是启用FLP的父面板AutoScroll
选项是原因。这与FLP的所需包装行为不兼容。 FLP不会换行,除非它不能适合一行上的所有内容。通过允许其父面板滚动,FLP将始终能够适应一行中的所有内容。关闭父面板的AutoScroll
,它应该可以正常工作。