码迷,mamicode.com
首页 > Windows程序 > 详细

C# 遍历所有的子控件和孙控件,包括容器中的,并批量操作和调用

时间:2017-09-28 10:02:56      阅读:469      评论:0      收藏:0      [点我收藏+]

标签:语句   enqueue   操作   dev   队列   ext   定义   count   ice   

这里要用两个知识,一个是递归,一个是队列。

//定义一个Control类型的队列allCtrls
private static Queue <Control> allCtrls = new Queue<Control>();

public form1()
{
CheckAllCtrls(this);//调用很简单,把要遍历的放进参数即可。如果控件没有变化,则加载时调用一次即可。
}

//递归遍历所有的子孙控件包括容器类
private static void CheckAllCtrls(Control item )
{
for (int i = 0; i < item.Controls.Count; i++)
{
if (item.Controls[i].HasChildren)
{
CheckAllCtrls(item.Controls[i]);

}
//else{allCtrls.Enqueue (item.Controls[i]);}//如果只要子控件,那么这个语句在else里
allCtrls.Enqueue(item.Controls[i]);
}
}

这样

allCtrls这个队列就有了所有的控件了

比如让所有的按钮控件text加上个“我是按钮+”
 foreach (Control devices in allCtrls)
                        {

                            if (devices is button DVC)
                            {
                                DVC.Text ="我是按钮+" +DVC.Text ;
                            }

                        }

则整个form下所有的按钮,无论有几层容器,都会变化。

就是这么简单。

有问题可以留言交流。

C# 遍历所有的子控件和孙控件,包括容器中的,并批量操作和调用

标签:语句   enqueue   操作   dev   队列   ext   定义   count   ice   

原文地址:http://www.cnblogs.com/dengfzj/p/7604765.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!