即使设置了 Dock 属性,是否仍然可以强制使用 Margin?

43

我有一个WinForms Form,上面有几个控件。它们全部是GroupBox控件,并且我想把它们堆叠起来,设置垂直间距。我已经将Dock属性设置为Top,它可以正确地堆叠它们,但忽略了间距(控件紧贴在一起)。

这些间距还能以某种方式被强制执行吗? 基本上,它会计算常规的停靠位置(好像间距为0一样),然后应用间距。这种做法可行吗?

我尝试过使用FlowLayoutPanelTopDown选项,但是那样我需要手动设置大小和左/右锚点。

有没有简单的方法可以实现这种场景,或者我应该坚持我已经拥有的东西?


8
当控件停靠时,建议使用“Padding”而不是“Margin”。 - Cody Gray
2
是的,需要FLP。设置其内部控件的Margin属性以创建间隙。 - Hans Passant
3个回答

38

将每个 GroupBox 放置在一个 Panel 中,将 Panel 的 Dock 属性设置为 Top,GroupBox 的 Dock 属性设置为 Fill。然后在面板上设置 Padding。


12
填充是关键!至少对我来说是这样。 - Arman
1
很遗憾,停靠没有考虑到“Margin”。给所有这些“Panels”命名可能是一场噩梦。 - PetoMPP

19

set docking属性会忽略GroupBox控件之间的填充属性,因此,最好使用Flow或Table面板来实现此操作。


8
在每个文本框之间添加一个虚拟透明面板,其高度应等于您所需的确切距离。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接