如何将组件的大小链接到窗口大小?

时间:2019-04-24 10:19:12

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

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

比方说,用户可以通过拖动边框来扩大或缩小Window:我希望当Window运行时组件会变大,反之亦然。

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

我该怎么做?

1 个答案:

答案 0 :(得分:3)

使用TableLayoutPanel和2个按钮的采样过程:

  • 将TableLayoutPanel添加到窗体
    1. 编辑“列和行”集合,以使您拥有2列(均大小为50%和1行),它们设置为 Autosize
    2. 将TableLayoutPanel的 Location.X 设置为0,并将其宽度调整为Form的宽度。
    3. 将TLP Anchor 属性设置为 Left Right
    4. 将行高度调整为〜它将承载的Button大小的两倍
  • 向表单添加一个按钮
    1. 根据需要调整按钮的外观。
    2. CTRL -拖动按钮以创建完全相同的副本
    3. 将两个按钮添加到TableLayoutPanel的两个单元格中
    4. Shift -选择两个按钮并将Dock属性设置为 DockStyle.Fill
    5. 您现在可以调整按钮的 Margin 属性(仍同时选中这两个按钮,因此将相同的设置应用于这两个按钮)以修改控件之间的空间
  • 根据需要重新调整TableLayoutPanel的唯一行高。
  • 额外:如果表单上只有这些控件,则可能需要修复表单的 MinimumSize ,以避免这种情况,在调整表单大小时,控件是缩小到无法识别的程度,破坏了整体布局:在设计器中将窗体的大小调整到某个程度,使托管控件的布局受到损害,找到合适的最小尺寸并将此度量用作窗体的 MinimumSize 属性。只能使用MinimumSizeX度量(例如Y)来设置(100, 0)。这限制了表单的Width,但没有限制Height。或相反,当然。
  

如果在拖动TableLayoutPanel内的按钮时,按钮   不会自动插入到单元格的左上角位置   而是将它们显示在随机位置,然后   TableLayoutPanel具有 gone流氓,需要放下。删除它   并在表单上放置另一个。冲洗并重复。

     

如果您稍微改动一下布局,则可能会发生这种情况。比尝试纠正问题更好的重新开始

TableLayoutPanel Control Overview