代码之家  ›  专栏  ›  技术社区  ›  Roman Starkov

WinForms在保持宽度可调的同时垂直自动调整大小?

  •  8
  • Roman Starkov  · 技术社区  · 15 年前

    是否可以使用WinForms布局引擎以完全自动调整高度以适应内容的方式设置表单,但宽度可由用户调整?

    作为一个例子,考虑以下一些人为的形式:

    • TLP : TableLayoutPanel ,1行2列。
    • label1 : Label ,包含在左侧列中。集合 Text 为了一些长久的事情, AutoSize 假的, Dock 填满。
    • button1 :按钮,包含在右列中。集合 自动大小 成真。
    • 现在将行设置为“自动调整大小”,第一列设置为“100%,第二列设置为“自动调整大小”。
    • 最后,把整个 张力腿平台 自动大小 真的, AutoSizeMode 生长和缩小。

    在这一点上, 张力腿平台 可以水平调整大小,但WinForms似乎不允许这样做。

    其想法是,包含此TLP的表单将根据宽度垂直增长或收缩,用户可以像往常一样通过调整窗口大小来更改宽度。

    2 回复  |  直到 15 年前
        1
  •  6
  •   Scotti    15 年前

    希望你现在已经找到解决办法了。但是,如果任何人有相同的查询,您可以将“最大大小”属性的宽度设置为窗体的实际宽度,并将“最大大小”的高度设置为0。

        2
  •  1
  •   Jeff Yates    15 年前

    这是完全可能的。要执行此操作,必须重写 SetBoundsCore 在你的表格上。在这种情况下,您可以控制高度,使其在调整大小时不会发生变化。只需将您想要的高度存储在一个变量中,然后让您的覆盖始终将其设置为该值。这样,当您自动调整高度大小时,在设置窗体之前会保存新的高度感知 Height 设置界限 会尊重新的高度。

    推荐文章