【问题标题】:How to deal with controls and form's stretching in WinFormsWinForms中如何处理控件和表单的拉伸
【发布时间】:2015-08-29 14:24:18
【问题描述】:

假设我在 Designer 中有以下表单:

我想让用户能够根据需要拉伸此表单,并且所有控件都应位于图片中,无论用户如何更改此表单的大小,因此他们应该占用相同的空间并坚持到相同的控件和边框。

如何在 WinForms 中执行此操作?我知道有像 Docks 之类的东西,但我没有找到在这种情况下使用它们的正确方法。

【问题讨论】:

  • 使用拆分面板并固定一个面板。比将ListBox.Dock 设置为Fill

标签: c# winforms user-interface


【解决方案1】:

在这种情况下,您需要Anchor 属性,而不是Dock。锚定意味着控件将始终与某些边(顶部、左侧、右侧和/或底部)保持相同的距离,即使这意味着必须更改大小;对接 OTOH 不关心边距,它只是填满一侧或所有侧面的所有可用空间。

以下是您可能想做的事情:

  • 将两个图像按钮固定在顶部和右侧。

  • 将“确定”按钮固定在右侧和底部(我猜)。

  • 将大号ListBox 锚定到所有侧面。

【讨论】:

    【解决方案2】:

    只是为了在good answer of stakx上添加一些注释

    1. 对于 ListBox 等高度有限制的控件,仅设置锚点是不够的,您应该将其中的 IntegralHeight 设置为 false。

    2. 我建议将 MinimumSize 设置为 Form 以防止用户将窗口调整为不希望的大小。在您的情况下,将其设置为可接受的最小大小,以防止带有无法使用的 ListBox 的丑陋小表单。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-24
      • 1970-01-01
      相关资源
      最近更新 更多