Yor*_*ram 5 c# groupbox form-layout flowlayoutpanel winforms
我有一个表格,其中包含一个包含1列和3行的TableLayout,其中包含2个FlowLayoutPanels和一个文本框。所有行均为AutoSize,并且该列设置为Percentage = 100%。
每个FlowLayoutPanel都包含多个TextBox。设置FlowLayoutPanels: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)
Run Code Online (Sandbox Code Playgroud)
问题是如果我将FlowLayoutPanel放置在也设置为AutoSize = true的GroupBox内,则FlowLayoutPanel Height设置不正确,并且它在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)
Run Code Online (Sandbox Code Playgroud)
顺便说一句,如果我使用而不是GroupBox,Panel甚至UserControl来保存FlowLayoutPanel,也会发生同样的事情。
顺便说一句2,即使没有TableLayout,也会发生这种情况。我尝试将GroupBox(与FlowLayoutPanel一起)放置在AutoSized窗体上,并且得到相同的行为。
我认为问题是,当FlowLayoutPanel处于另一个也具有AutoSized大小的容器中时,它无法传递给它的容器是首选大小。
有什么办法可以覆盖此错误?
请帮助谢谢,约兰
ps:我必须使用GroupBox在TextBoxes周围有一个漂亮的框架。
也遇到了这个问题,并试图找出如何轻松解决这个问题。虽然@GertArnold的答案确实有帮助,但感觉有点麻烦,我寻找了另一个解决方案。
我发现流程面板的自动调整大小逻辑正在满足“最小”要求,并且通过添加最小高度的空白面板,我能够强制流程面板的宽度,从而使所有其他子控件可见。
所以在上面的例子中,最终的布局将是:
Form
TableLayout (Dock=Fill)
GroupBox (Dock=Fill, AutoSize=True, GrowShrink)
FlowLayoutPanel(Dock=Fill, AutoSize=True, GrowShrink)
Panel(Dock=Fill, Height = 1, MinimumSize = new System.Drawing.Size( Form.ClientSize.Width - TableLayout.Padding.Horizontal, 1))
More controls
GroupBox (Dock=Fill, AutoSize=True, GrowShrink)
FlowLayoutPanel(Dock=Fill, AutoSize=True, GrowShrink)
Panel(Dock=Fill, Height = 1, MinimumSize = new System.Drawing.Size( Form.ClientSize.Width - TableLayout.Padding.Horizontal, 1))
More controls
TextBox(Dock=Fill, MultiLine=true)
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助。
| 归档时间: |
|
| 查看次数: |
8943 次 |
| 最近记录: |