使用锚点,我可以编写以下行:
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.TopAnchor = (AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right)除了锚可以坐在任何初始位置并且码头将移动到远边缘之外,其他相同。
DockStyle只能设置为一个值,而不是可以Anchor设置为多个值。
这就是为什么有这个Anchor属性,以便您可以更具体地调整控件对表单大小调整的反应。
可能是您正在寻找的是Anchor属性:
myControl.Anchor = AnchorStyles.Bottom | AnchorStyles.Right