2016-09-07 43 views
0

我在标签页中有2个列表视图。然而,我要寻找一个函数的名字找到正确的控制:在标签页中查找ListView控件

foreach (Control c in form.Controls) // loop through form controls 
{ 
    if (c is TabControl) 
    { 
     TabControl f = (TabControl)c; 

     foreach (Control tab in f.Controls) 
     { 
      TabPage tabPage = (TabPage)tab; 

      foreach (Control control in tabPage.Controls) 
      { 
       MessageBox.Show(control.Name); 

       // code to go here 
      } 
     }  
    } 
} 

回答

0

这将搜索与指定控件的控件和他的儿子指定名称的控制。

public Control findControlbyName(String name, Control parent){ 
    foreach (Control ctr in parent.Controls) 
    { 
     if (ctr.Name.Equals(name)) return ctr; 
     else return findControlbyName(name, ctr); 
    } 
    return null; 
} 

你只需要做:

findControlbyName("NameOfTheListView",this); 
1

Controls集合具有Find函数返回一个数组:

Control[] ctrls = this.Controls.Find("listView1", true); 
if (ctrls.Length == 1) { 
    MessageBox.Show("Found " + ctrls[0].Name); 
} 
+0

是否递归搜索嵌套controsl? – Aimnox

+0

@Aimnox这就是“真正的”部分是:searchAllChildren。 – LarsTech