首先,理论:先添加的控件会在最上面,即当两个控件重叠时,先使用 this.controls.Add() 的控件放在最上面,可见次序是由index决定的。
我们可以使用可 BringToFront() 方法将控件直接置于最上方,使用 SendToBack() 方法将控件置于最下方。
当多个空间重叠时,我们还可以使用Controls的Remove和Add方法实现更改显示次序,如下:
void SetTop(object obj)//测试在一个面板上的控件
{
int index=this.Controls.GetChildIndex((Control)obj);//取得要置顶控件的index,把其之前的都给放置其后
ArrayList AL=new ArrayList();//用来装入控件的容器
for(int i=0;i< index;i++)//把要置顶控件上面的控件都装入容器
AL.Add(this.Controls[i]);
for(int i=0;i< AL.Count;i++)
{
//用一次删除和一次添加操作,让它上面的控件排到下面去.
this.Controls.Remove((Control)AL[i]);
this.Controls.Add((Control)AL[i]);
}
}