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

问题描述 投票:1回答:1

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

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

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

我怎样才能做到这一点?

c# .net winforms windows-forms-designer
1个回答
3
投票

使用TableLayoutPanel和2个按钮的示例程序:

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

如果,当拖动TableLayoutPanel内的按钮时,按钮不会自动插入单元格的左上角位置,而是显示位于随机位置,那么TableLayoutPanel已经变得流氓,需要放下。删除它并在表单上删除另一个。冲洗并重复。

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

TableLayoutPanel Control Overview

© www.soinside.com 2019 - 2024. All rights reserved.