在设计窗体时,这两个属性特别有用,如果用户认为改变窗口的大小并不容易,应确保窗口看起来显示的不是那么乱,并编写很多代码来实现这个效果,许多程序解决这个问题都是禁止给窗口重新设置大小
这显然是解决问题的最简单的方法,但不是最好的方法,因此引入了Anchor和Dock属性。
* Top--表示控件中与父窗体(父控件)相关的顶部应该保持固定
* Bottom--表示控件中与父窗体(父控件)相关的底部应该保持固定
* Left--表示控件中与父窗体(父控件)相关的左边缘应该保持固定
* Right--表示控件中与父窗体(父控件)相关的右边缘应该保持固定
正如演示的那样,每个控件在父窗体上都自动的保持它的位置,需要注意的是:
①如果没有指定一个控件有左右锚定,它将在父窗体中保留一个相对左右的位置,其它也是一样
②如果选择了所有Anchor值的控件,控件只是在调整父窗体大小时,随着增大和缩小--与窗体的边缘比较起来它的所有边缘保持静止不变。
*Top--迫使控件位于父窗体(或控件)的顶部,如果有同一个父窗体的其它子控件也被设置为停驻在顶部的话,那么控件将在彼此上方互相堆叠
* Bottom--迫使控件位于父窗体(或控件)的底部,如果有同一个父窗体的其它子控件也被设置为停驻在底部的话,那么控件将在彼此上方互相堆叠
* Left--迫使控件位于父窗体(或控件)的左边,如果有同一个父窗体的其它子控件也被设置为停驻在左边的话,那么控件将在彼此旁边互相堆叠
* Right--迫使控件位于父窗体(或控件)的右边,如果有同一个父窗体的其它子控件也被设置为停驻在右边的话,那么控件将在彼此旁边互相堆叠
* Fill--迫使控件位于父窗体(或控件)的上方,如果有同一个父窗体的其它子控件也被设置为停驻在上方的话,那么控件将在彼此上方互相堆叠
* None--表示控件将会正常运转
需要注意的是:对于Dock属性,添加控件的顺序会影响它们停驻的方式。
这显然是解决问题的最简单的方法,但不是最好的方法,因此引入了Anchor和Dock属性。
1、Anchor属性用于指定在用户重新设置窗口的大小时控件应该如何响应,可以指定如果控件重新设置了大小,就根据控件的边界去锁定它,或者其大小不变,但根据窗口的边界来锚定它的位置
* Top--表示控件中与父窗体(父控件)相关的顶部应该保持固定
* Bottom--表示控件中与父窗体(父控件)相关的底部应该保持固定
* Left--表示控件中与父窗体(父控件)相关的左边缘应该保持固定
* Right--表示控件中与父窗体(父控件)相关的右边缘应该保持固定
正如演示的那样,每个控件在父窗体上都自动的保持它的位置,需要注意的是:
①如果没有指定一个控件有左右锚定,它将在父窗体中保留一个相对左右的位置,其它也是一样
②如果选择了所有Anchor值的控件,控件只是在调整父窗体大小时,随着增大和缩小--与窗体的边缘比较起来它的所有边缘保持静止不变。
2、Dock属性用于指定控件应该停放在窗口的边框上,用户重新设置了窗口的大小,这个控件将继续停放在窗口的边框上,例如,如果指定控件停留在窗口的底部边界上,则无论窗口的大小怎么改变,这个控件都将改变大小,或移动其位置,确保总是位于屏幕的底部。
*Top--迫使控件位于父窗体(或控件)的顶部,如果有同一个父窗体的其它子控件也被设置为停驻在顶部的话,那么控件将在彼此上方互相堆叠
* Bottom--迫使控件位于父窗体(或控件)的底部,如果有同一个父窗体的其它子控件也被设置为停驻在底部的话,那么控件将在彼此上方互相堆叠
* Left--迫使控件位于父窗体(或控件)的左边,如果有同一个父窗体的其它子控件也被设置为停驻在左边的话,那么控件将在彼此旁边互相堆叠
* Right--迫使控件位于父窗体(或控件)的右边,如果有同一个父窗体的其它子控件也被设置为停驻在右边的话,那么控件将在彼此旁边互相堆叠
* Fill--迫使控件位于父窗体(或控件)的上方,如果有同一个父窗体的其它子控件也被设置为停驻在上方的话,那么控件将在彼此上方互相堆叠
* None--表示控件将会正常运转
需要注意的是:对于Dock属性,添加控件的顺序会影响它们停驻的方式。