使用锚点我可以写下以下行:
myControl.Anchor = (AnchorStyles.Top | AnchorStyles.Left);
它会将myControl
锚定在左侧和顶部。
为什么我不能执行以下操作:
myControl.Dock = (DockStyle.Top | DockStyle.Left);
我可以写上面这一行,但它所做的就是将DockStyle
设置为左边。
有任何想法/原因吗?
答案 0 :(得分:12)
您无法执行此操作的原因是因为设置DockStyle
基本上会停靠/填充指定边缘的整数。
例如,DockStyle.Left
表示停靠项目的高度始终为容器的高度,X,Y位置始终为0,0。
DockStyle.Top
表示项目的宽度始终是容器的宽度,位置始终为0,0。
设置DockStyle.Top
和DockStyle.Left
基本上会为您提供DockStyle.Fill
。即与容器相同的宽度和。
答案 1 :(得分:3)
Dock
是预先确定的锚点集,而Anchor
是自定义停靠点配置。
DockStyle.Top
与Anchor = (AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right)
相同,只是锚可以位于任何初始位置,而停靠点会移动到远边。
答案 2 :(得分:1)
DockStyle
只能设置为一个值,而Anchor
则可以设置为多个值。
这就是为什么有Anchor
属性,以便您可以调整控件对更具体调整大小的表单的反应。
答案 3 :(得分:0)
您正在寻找的是Anchor
属性:
myControl.Anchor = AnchorStyles.Bottom | AnchorStyles.Right