【问题标题】:Variable height FlowLayoutPanel with right anchored static panel具有右锚定静态面板的可变高度 FlowLayoutPanel
【发布时间】:2014-01-21 00:24:50
【问题描述】:

好好看看这个

我有一个顶部面板,它停靠在我的表单的TopAutoSize == TrueAutoSizeMode == GrowOnly)上。在其中我有一个 FlowLayoutPanel 停靠到 FillAutoSize == TrueAutoSizeMode == GrowOnly),还有一个普通的静态面板停靠到 Right(@987654329 @)。 静态面板有固定的宽度,但它的高度可以被拉伸。 FlowLayoutPanel 包含许多向右对齐的子元素。

我想要这样,当用户将表单大小调整为所有 FlowLayout 子级无法容纳在 FlowLayoutPanelTop Panel 的同一“行”时和静态面板都在高度增长,以适应第二条“线”上被切断的孩子,可能还有第三条、第四条等等。

就目前而言(在此示例中),可能重叠的孩子被撞到第二条“线”,但没有一个高度伸展以显示它们。在这些不同的面板中,我用各种方式调整了各种停靠和自动调整大小的参数。

我认为这不会太难,但我无法仅使用设计时可用的功能来使其工作。也许这是不可能的,或者我错过了一些东西。谢谢!

【问题讨论】:

    标签: c# winforms user-interface docking flowlayoutpanel


    【解决方案1】:

    我尝试了多种方法。这对我有用:

    TableLayoutPanelAnchor= Top, Left, RightColumnCount=2RowCount=1Autosize = TrueAutosizeMode = GrowAndShrink)替换您的顶部面板,并为右列提供 x 像素的固定宽度(左列将调整为 100 %)

    在左栏中输入您的FlowLayoutPanelAutosize = TrueAutosizeMode = GrowAndShrinkAnchor= Top, Left, Right

    在右栏中放一个PanelAutosize = FalseAnchor= Top, Bottom, Left, Right

    如下所示:Blue= FlowLayoutPanel,Green=Panel

    调整大小之前
    调整大小后

    不要忘记为表单设置最小宽度。或者它可能看起来像这样

    【讨论】:

      【解决方案2】:

      我在我的电脑上试过这个,发现你的问题。

      造成这种情况的原因是您应该小心混合嵌套控件的 AutoSize 和 Dock 属性。

      Flowlayoutpanel.Dock 设置为 Fill,因此它不能根据其中的控件增加大小。它只取决于其父级的大小。将 FOP 设置为 Dock = None 并改为使用锚点 - 上、左、右。

      我能够在我的电脑上完成这项工作。如果您需要帮助,请告诉我。

      【讨论】:

      • FOP 代表 ?
      • @Jaydeep 可能我当时的意思是 flowlayoutpanel
      猜你喜欢
      • 2021-04-30
      • 2017-10-25
      • 1970-01-01
      • 1970-01-01
      • 2011-08-04
      • 2012-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多