найти скрытые элементы управления в winform и сделать их видимыми во время выполнения? - PullRequest
1 голос
/ 22 ноября 2010

У меня такая ситуация, у меня есть winform, который имеет от 10 до 15 ярлыков и комбо-боксы, которые все не видны. Теперь во время выполнения я передаю, сколько из них должны быть активированы? их именные свойства - от lable1 до lable16 и от combobox1 до combobox16. Я использую следующий код только для проверки, могу ли я найти элементы управления, но кажется, что все не удалось, хотя и эти элементы управления и комбо-боксы находятся на панели.

следующий код, который я использовал:

foreach (Control ctrl in this.Controls) 
            { 
                if (ctrl is Label) 
                {
                    MessageBox.Show(((Label)ctrl).Text); 
                } 
          }

Ответы [ 4 ]

2 голосов
/ 22 ноября 2010

Вы должны сделать это рекурсивным.

Сам ctrl также имеет Controls. Если вы просто пройдете по всему дереву, вы в конечном итоге найдете все элементы управления.

2 голосов
/ 22 ноября 2010

Вам придется заменить this.Controls на this.Panel1.Controls или как бы то ни было ваше имя элемента управления панели.

Также лучше взглянуть на Control.ControlCollection.Find Method использовать имя элемента управления.

1 голос
/ 22 ноября 2010

Вы на самом деле вроде как ответили на свой вопрос ... Вы не можете найти элементы управления в this.Control s, но Panel1.Controls:)

0 голосов
/ 22 ноября 2010

вы можете проверить, есть ли у текущего элемента управления (ctrl) элементы управления или нет, чтобы просмотреть их

например:.

if (ctrl.Controls.Count >0)
{
//do your logic here
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...