昨天有个朋友问我,怎么样处理重叠的控件,让指定的控件在最上面.我就很抓狂,很奇怪为什么会有这种需求,但昨天上班忙,没时间.今天早上来就写了一段代码试试,如下:
SetMeTop是设置最上的函数,button1_Click是一个测试方法,经测试,这样是可行的.
为什么要用一个ArrryList而不是直接用index来删除呢,是因为删除上层的一个控件后,会导致下面控件的index都加1,会产生一些异常.
这只是一时乱写的函数.也许.net本身直接有方法来设置,我却不知道.呵呵..
欢迎指教: AppleDotnet@hotmail.com
void SetMeTop(object obj)
{
//原理:先添加的控件会在最上面,即可见次序是由index决定的.
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]);
}
}
private void button1_Click(object sender, System.EventArgs e)
{
SetMeTop(sender);
}
博主朋友询问处理重叠控件让指定控件置顶的方法,博主编写代码进行测试。代码中使用ArrayList而非直接用index删除,避免删除上层控件导致下层控件index变化产生异常。还给出了SetMeTop函数和button1_Click测试方法。
1010

被折叠的 条评论
为什么被折叠?



