winform关于控件Anchor属性使用的坑
Anchor的中文意思是锚点,顾名思义就是定位点的意思。
在winform中控件的Anchor属性是用来定位控件的位置的,应该不仅仅是在winform中,所有涉及画面布局的框架,对于Anchor的使用应该是一致的(比如Unity)。
但是在使用的时候有个特别注意的坑:
就是一旦对控件定义了Anchor属性,那么这个控件就是以当前的位置状态来相对于父容器控件的确定的。换句话说,假如你当前控件的位置并不是正确或者说是想要的位置,就设置了
Anchor属性,那么这个错误位置就会被隐形延续下去。
举个例子:
假如有一个子控件label1的size=(40,40),然后一个父容器控件panel1的size=(100,100);
在开始将label1的location=(30,40),如果此时就设置label1的Achor属性为left|top|right|bottom,那么无论怎么修改panel1的size,两者都相差当前固定的距离;
如果是故意这样做还好,但是如果无意为之,那么就容易造成没有设置却有一段无形的距离产生。
结论:对Anchor属性的设置,最好在布局都完成后在进行。