我有一个包含 1 列和 3 行的 TableLayout 的表单,其中包含 2 个 FlowLayoutPanel 和一个文本框。所有行都是 AutoSize,列设置为 Percentage=100%。
每个 FlowLayoutPanel 包含多个 TextBox。FlowLayoutPanel 设置为:LeftToRight、AutoSize=true、GrowAndShrink、Docking=Fill。
大纲是:
Form
TableLayout (Dock=Fill)
FlowLayoutPanel(Dock=Fill, AutoSize=True, GrowShrink)
More controls
FlowLayoutPanel(Dock=Fill, AutoSize=True, GrowShrink)
More controls
TextBox(Dock=Fill, MultiLine=true)
问题是如果我将 FlowLayoutPanel 放在一个也设置为 AutoSize=true 的 GroupBox 中,FlowLayoutPanel 的高度设置不正确,它会在 1 行中显示 TextBoxes,将一些 TextBoxes 从表单中剪切出来。
大纲是:
Form
TableLayout (Dock=Fill)
GroupBox (Dock=Fill, AutoSize=True, GrowShrink)
FlowLayoutPanel(Dock=Fill, AutoSize=True, GrowShrink)
More controls
GroupBox (Dock=Fill, AutoSize=True, GrowShrink)
FlowLayoutPanel(Dock=Fill, AutoSize=True, GrowShrink)
More controls
TextBox(Dock=Fill, MultiLine=true)
顺便说一句,如果我使用而不是 GroupBox、Panel 甚至是 UserControl 来保存 FlowLayoutPanel,也会发生同样的事情。
BTW 2,即使没有 TableLayout,也会发生这种情况。我尝试将 GroupBox(带有 FlowLayoutPanel)放在 AutoSized Form 上,我得到了相同的行为。
我认为问题在于,当 FlowLayoutPanel 位于另一个也是 AutoSized 的容器中时,它无法传递给它的容器是首选大小。
可以做些什么来覆盖这个错误?
请帮助 谢谢, Yoram
ps:我必须使用 GroupBox 在 TextBoxes 周围有一个漂亮的框架。