【问题标题】:How can I link a component's Size to the Window size?如何将组件的大小链接到窗口大小?
【发布时间】:2019-04-24 10:19:12
【问题描述】:

我正在制作一个简单的 WinForms 程序。
我想将组件的大小链接到窗口的大小。

假设用户通过拖动它的边框来放大或缩小窗口:我希望当窗口这样做时组件变得更大,反之亦然。

假设我们有两个按钮,在窗口的中心,并排:我想让它们的大小相同,填充窗口的整个宽度。

我该怎么做?

【问题讨论】:

  • 或者将两个Button添加到一个TableLayoutPanel(2列,1行),锚定在Form的左右两侧。

标签: c# .net winforms windows-forms-designer


【解决方案1】:

示例过程,使用 TableLayoutPanel 和 2 个按钮:

  • 向表单添加 TableLayoutPanel
    1. 编辑 Columns 和 Rows 集合,使您有 2 个 Columns,大小都为 50% 和一个 Row,设置为 Autosize
    2. 将TableLayoutPanel的Location.X设置为0,并将其宽度调整为Form的宽度。
    3. 将 TLP Anchor 属性设置为 LeftRight
    4. 调整并拖动 Row 高度,使其成为 Button 大小的两倍
  • 向表单添加一个按钮
    1. 根据需要调整按钮的外观。
    2. CTRL-拖动按钮以创建完全相同的副本
    3. 将两个Button添加到TableLayoutPanel的两个单元格中
    4. SHIFT-选择两个按钮并将 Dock 属性设置为 DockStyle.Fill
    5. 您现在可以调整 Buttons 的 Margin 属性(仍然同时选中,因此相同的设置将应用于两者)以修改控件之间的间距
  • 根据需要重新调整 TableLayoutPanel 的唯一行高。
  • 额外:如果您在表单上只有这些控件,您可能需要修复表单的 MinimumSize,以避免在调整表单大小时,您的控件缩小到超出识别,破坏整体布局:将设计器中的表单调整到托管控件布局受损的点,找到合适的最小尺寸并将此度量用作表单的MinimumSize 属性。 MinimumSize 只能使用WidthHeight 度量(例如(100, 0))来设置。这限制了表单的Width,但不限制Height。当然,反之亦然。

如果在 TableLayoutPanel 内拖动按钮时,按钮 不会自动插入到单元格的左上角位置 相反,它们出现在一个随机的位置,然后 TableLayoutPanel 已经流氓,需要放下。删除它 并将另一个放在表格上。冲洗并重复。

如果您稍微篡改布局,可能会发生这种情况。最好重新开始而不是试图纠正问题

TableLayoutPanel Control Overview

【讨论】:

    猜你喜欢
    • 2022-10-20
    • 2021-08-29
    • 1970-01-01
    • 2020-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多