我在设计时使用了一些控件的Anchor属性。 但是当我在运行时更改这些控件的.Top属性时,似乎它正在弄乱Anchor属性而不再尊重它。 怎么了?怎么修?
答案 0 :(得分:2)
我尝试重现您描述的问题,但无法完全匹配。但是,以下示例可以帮助您解决我怀疑您遇到的问题。
(我的雇主阻止了i.imgur.com,SO的图像主机。如果您在查看屏幕截图时遇到任何问题,请告诉我。)
以下简单表单包含一个固定在其父表单四边的组框。
单击该按钮时,将执行以下代码:
groupBox1.Top = 0;
这导致组框重新定位如下:
但请注意,锚定仍然有效:
我怀疑您正在寻找的效果是,当您调整控件的大小时,除了控件的顶部位置之外没有任何。不幸的是,在这种情况下,设置Top
属性会重定位控件而不是调整大小。
但是,您可以使用SetBounds()
方法完成大小调整。在下面的示例中,我使用其现有边界使用新顶部调整锚定控件的大小。请注意,我不采取任何措施来避免非法的负面高度,你可能应该这样做。
int newtop = 0; // the new top bound
groupBox1.SetBounds(
groupBox1.Left,
newtop,
groupBox1.Width,
groupBox1.Height + groupBox1.Top - newtop);
这导致重新调整大小并重新定位的控件继续遵循其后的锚定: