【发布时间】:2020-02-21 07:04:28
【问题描述】:
我有以下表格:
文本框的所有标签都应保留在它们所在的表单的左侧。顶部的两个文本框应靠近表单的顶部和左侧,但在调整大小时应根据表单的宽度改变宽度。
多行文本框的上边缘应与表单的顶部保持相同的位置,左边缘也应如此。它应该根据表单的大小调整大小。
每个按钮都应该留在它们所在的角落。
当表单高度降低时,多行文本框应该被“压扁”。复选框也应该保持在相同的位置。
我已经尝试了很多方法来实现这一点,但没有一个能达到预期的效果。这包括表格布局面板,并在其中锚定各种元素。我发现按钮和前两个文本框可能不需要放在表格布局内,只需使用锚点即可。我通过将 button1 锚定在左侧和底部,将 button2 锚定在右侧和底部,成功地实现了这一点。 field1...field3 标签也位于适当的位置,并在调整表单大小时保持在应有的位置。这些标签当前锚定在顶部和左侧。
【问题讨论】:
-
每个控件都有Anchor 属性。您可以将控件的四个边中的任何一个锚定到表单的相应边。
-
这两个文本框应该是锚点左 - 上 - 右。多行文本框应锚定在所有侧面。 CheckBoxes 应该锚定在 LEFT - BOTTOM 上。这是假设这些控件不在面板内。
-
是的,例如,我尝试将顶部文本框锚定到顶部、左侧和右侧。最初我在尝试此操作时收到“属性值无效”错误,但我重新启动了 Visual Studio,它似乎解决了这个问题。这两个文本框不在面板内。
-
如果它不起作用,那么它们在面板内。否则我们需要查看设计器代码。
标签: c# .net winforms user-interface docking