Moulldar
Moulldar

Reputation: 73

Find a ListView control in tab page

I have 2 listviews in tab page. however I am looking for a function to find the right control by name:

I have

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
            }
        }     
    }
}

Upvotes: 0

Views: 599

Answers (2)

LarsTech
LarsTech

Reputation: 81610

The Controls collection has a Find function that returns an array:

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

Upvotes: 1

Aimnox
Aimnox

Reputation: 899

This will search for a control with the specified name in the controls of the specified control and all his sons.

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

You just need to do:

findControlbyName("NameOfTheListView",this);

Upvotes: 0

Related Questions