小编Yor*_*ram的帖子

使用AutoSize时发生FlowLayoutPanel Height错误

我有一个表格,其中包含一个包含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周围有一个漂亮的框架。

c# groupbox form-layout flowlayoutpanel winforms

5
推荐指数
1
解决办法
8943
查看次数

标签 统计

c# ×1

flowlayoutpanel ×1

form-layout ×1

groupbox ×1

winforms ×1