如下的代码:
button2.Dock = DockStyle.Top;
button1.SendToBack();
button1.Dock = DockStyle.Top;
button3.Dock = DockStyle.Bottom;
运行后,3个button的顺序始终为:
button1
button2
button3
如果代码改为:
button2.Dock = DockStyle.Top;
button1.Dock = DockStyle.Top;
button3.Dock = DockStyle.Bottom;
运行后,3个button的顺序始终为:
button2
button1
button3
如果代码改为:
button1.Dock = DockStyle.Top;
button2.Dock = DockStyle.Bottom;
button3.SendToBack();
button3.Dock = DockStyle.Bottom;
运行后,3个button的顺序始终为:
button1
button2
button3
如果代码改为:
button3.SendToBack();
button3.Dock = DockStyle.Top;
button2.SendToBack();
button2.Dock = DockStyle.Top;
button1.SendToBack();
button1.Dock = DockStyle.Top;
运行后,3个button的顺序始终为:
button1
button2
SendToBack() 将控件移到 Z 顺序的后面。
BringToFront()将控件移到 Z 顺序的前面。
.NET中,控件的Dock属性是将控件做X和Y方向上的排列。这个属性设置后,排列的先后顺序,是与控件被加载的顺序有关的
控件的SendToBack和BringToFront两个方法,就是用来改变Z方向上的排列顺序的,简单说就是控件或者Form在其父容器或桌面上的叠放层次。所以他们不是用来改变在X和Y方向上的排列的。