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

Resizing GUI elements with form resize

我有以下表格:

文本框的所有标签都应位于表单的左侧。顶部的两个文本框应靠近表单的顶部和左侧,但宽度应随着表单调整大小时的宽度而变化。

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

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

当表单高度降低时,多行文本框应该"squashed"。复选框也应该保持在相同的位置。

我尝试了很多方法来实现这一点,但 none 达到了预期的效果。这包括表格布局面板,以及将各种元素固定在其中。我发现按钮和最上面的两个文本框可能不需要放在表格布局中,只需使用锚点即可。我通过将 button1 锚定在左侧和底部,将 button2 锚定在右侧和底部,成功地实现了这一点。 field1...field3 标签也位于适当的位置,并在调整表单大小时保持在应有的位置。这些标签目前锚定在顶部和左侧。

您应该能够通过以这种方式锚定控件来做到这一点:

  • 'field1' 和 'field2' 文本框:左、右和上;

  • 'field3'文本框:左、右、上、下;

  • 'checkBox1'和'checkBox2':左下;

  • 'button1':左边和底部(你已经有了这个);

  • 'button2':右边和底部(你也有这个)。

您的标签可能没有问题。

您可能已经弄清楚了锚点,但基本上:如果您在控件上设置了正确的锚点,则表示您想要 right 一侧控件与其容器的 侧保持相同的距离。如果控件不在面板内,那将是窗体的右侧。因此,如果 'field1' 文本框在设计器中距窗体右侧八个单位,那么无论您在 运行 时如何调整窗体大小,它都将保持距右侧八个单位。如果您锚定左右两侧,它会在您调整大小时拉伸,因为这是保持两侧距离相同的唯一方法。

您还需要为表单设置一个 'MinimimSize',以防止表单尺寸缩小时底部控件与顶部控件重叠。