使用表单大小调整GUI元素的大小

时间:2019-10-24 22:23:12

标签: c# .net winforms user-interface docking

我的格式如下:

form:

文本框的所有标签应保留在表单左侧的位置。前两个文本框应保持在表单的顶部和左侧附近,但在调整大小时,其宽度应根据表单的宽度而变化。

相对于表单顶部,多行文本框的顶部边缘应保持在相同的位置,左侧边缘也应保持相同的位置。它应该根据表单的大小进行调整。

每个按钮应留在它们所处的角落。

当表单高度减小时,多行文本框应被“压缩”。复选框也应保持在同一位置。

我尝试了多种方法来实现这一目标,但是没有一种方法具有理想的效果。其中包括桌面布局面板,并将各种元素固定在其中。我已经知道按钮和顶部的两个文本框可能不需要放置在布局中,只需使用锚即可。我已经成功实现了此目的,方法是将button1固定在左侧和底部,将button2固定在右侧和底部。 field1 ... field3标签也位于适当的位置,并在调整表单大小时保持在原位置。这些标签当前固定在顶部和左侧。

1 个答案:

答案 0 :(得分:2)

您应该可以通过以下方式锚定控件来做到这一点:

  • “ field1”和“ field2”文本框:左,右和顶部;

  • “ field3”文本框:左,右,上和下;

  • 'checkBox1'和'checkBox2':左侧和底部;

  • 'button1':左侧和底部(您已经有这个按钮了);

  • 'button2':右下(您也有这个)。

您的标签可能没有问题。

您可能已经找到了锚点,但是基本上:如果在控件上设置了正确的锚点,则表示您希望该控件的 right 端保持相同距容器的 right 侧的距离。如果控件不在面板内,则该控件将位于表单的右侧。因此,如果“ field1”文本框在设计器中距离表单右侧为八个单位,则无论您在运行时如何调整表单的大小,它都将保持右侧八个单位。如果您固定左右两侧,则调整大小时会拉伸,因为这是保持左右两侧相同距离的唯一方法。

您还需要为表单设置一个“ MinimimSize”,以防止在减小表单大小时底部控件与顶部控件重叠。