WinForm遍历控件

 1 foreach (Control c in this.Controls)
 2 {
 3     if (c is TextBox)
 4         ((TextBox)c).Text = "1111";
 5 }
 6 
 7 foreach (Control c in this.Controls)
 8 {
 9     string type = c.GetType().Name;
10     switch (type)
11     {
12         case "TextBox":
13             ((TextBox)c).Text = "111"; break;
14     }
15 }
16 
17 for (int i = 1; i <= 10; i++)
18 {
19     Control c = this.Controls.Find("textBox" + i.ToString(), true)[0];
20     ((TextBox)c).Text = "1111";
21 }

经测试,使用foreach只能找到本级的子控件,而下级的子控件就找不到,比如本级里面有panel,groupbox等,panel,groupbox里面的子控件就找不到。而使用Find可以找到所有的子控件,包括下级里面的。

猜你喜欢

转载自www.cnblogs.com/desertion/p/9164417.html