使用锚点,我可以编写以下行:
myControl.Anchor = (AnchorStyles.Top | AnchorStyles.Left);
它将锚定myControl
在左侧和顶部。
为什么我不能执行以下操作:
myControl.Dock = (DockStyle.Top | DockStyle.Left);
我可以写上面的行,但它所做的只是将 设置DockStyle
为左。
有什么想法/原因吗?
你不能这样做的原因是因为设置一个DockStyle
基本上停靠/填充指定边缘的整个。
例如,DockStyle.Left
表示要停靠的项目的高度将始终是容器的高度,并且 X,Y 位置将始终为 0, 0。
DockStyle.Top
意味着项目的宽度将始终是容器的宽度,并且位置将始终为 0,0。
设置 DockStyle.Top
和DockStyle.Left
本质上会给你DockStyle.Fill
. 即与容器相同的宽度和高度。
ADock
是预先确定的锚点集,而 anAnchor
是自定义停靠配置。
DockStyle.Top
Anchor = (AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right)
除了锚可以坐在任何初始位置并且码头将移动到远边缘之外,其他相同。
DockStyle
只能设置为一个值,而不是可以Anchor
设置为多个值。
这就是为什么有这个Anchor
属性,以便您可以更具体地调整控件对表单大小调整的反应。
可能是您正在寻找的是Anchor
属性:
myControl.Anchor = AnchorStyles.Bottom | AnchorStyles.Right