Как я могу получить кнопки управления в форме Windows - Панель - PullRequest
7 голосов
/ 21 июня 2011

Получить все кнопки в форме, включая кнопки на панели одинаковой формы ..

Ответы [ 3 ]

10 голосов
/ 21 июня 2011
 List<Control> list = new List<Control>();

            GetAllControl(this, list);

            foreach (Control control in list)
            {
                if (control.GetType() == typeof(Button))
                {
                    //all btn
                }
            }

        private void GetAllControl(Control c , List<Control> list)
        {
            foreach (Control control in c.Controls)
            {
                list.Add(control);

                if (control.GetType() == typeof(Panel))
                    GetAllControl(control , list);
            }
        }
5 голосов
/ 07 октября 2013

Вот что я сделал, я написал простую функцию: когда я нажимаю кнопку, я выбираю только элемент управления панели и передаю его функции для дальнейшего прохождения цикла через элемент управления на этой панели.

1 голос
/ 21 июня 2011

попробуйте

foreach (var control in this.Controls)
{
   if (control.GetType()== typeof(Button))
   {

       //do stuff with control in form
   }

   else if (control.GetType() == typeof(Panel))
   {
       var panel = control as Panel;
       foreach (var pan in panel.Controls)
       {
           if (pan.GetType() == typeof(Button))
           {

                //do stuff with control in panel
           }
        }
    }              

} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...