C# 把指定控件显示在最上面

王朝c#·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

昨天有个朋友问我,怎么样处理重叠的控件,让指定的控件在最上面.我就很抓狂,很奇怪为什么会有这种需求,但昨天上班忙,没时间.今天早上来就写了一段代码试试,如下:

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);

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航