Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка Windows Forms > Как перебрать компоненты формы


Автор: Dark_Falcon 10.2.2008, 22:36
Собственно сабж.  smile  Находил подобную тему http://forum.vingrad.ru/forum/topic-93158.html но это не совсем то, что мне нужно...  smile Мне нужно перебрать только NumericUpDown на форме. Как это сделать? Хотелось бы увидеть пример  smile Незнаю, важно ли это, но на всякий случай говорю, что NumericUpDown находятся в groupBox  smile Других компонентов, кроме NumericUpDown, в этом groupBox нет. Надеюсь на вашу помощь. Заранее спасибо!  smile 

Автор: 1stain 11.2.2008, 13:21
Код

        public Form1()
        {
            InitializeComponent();

            List<NumericUpDown> numericsOnForm = new List<NumericUpDown>();
            FindAllSpecifiedControls(this, numericsOnForm);

            StringBuilder sb = new StringBuilder();
            foreach (NumericUpDown numeric in numericsOnForm)
                sb.AppendFormat("{0}.Value = {1}{2}", numeric.Name, numeric.Value, Environment.NewLine);
            MessageBox.Show(sb.ToString());
        }

        private static void FindAllSpecifiedControls<T>(Control container, List<T> result) where T : Control
        {
            foreach (Control c in container.Controls)
            {
                if (c.Controls.Count != 0)
                    FindAllSpecifiedControls(c, result);

                T temp = c as T;
                if (temp != null)
                    result.Add(temp);
            }
        }

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)