Лучший отвечающий
Массив из нескольких контролов

Вопрос
-
Необходимо в один массив поместить несколько типов контролов, например как Чекбоксы и ТекстБоксы. Это можно сделать как
private List<Control> cont=new List<Control>();
Но так же необходимо, проходить по массиву и если натыкаемся на нужный нам чекБокс, изменить значение checked. как реализовать?27 марта 2013 г. 17:49
Ответы
-
Например, по имени.
ваш код будет примерно следующим
foreach (var ctrl in this.controls) { if (ctrl is TextBox) { if ((ctrl as TextBox).Name.Equals("textBox2")) { (ctrl as TextBox).Text = "Hello MSDN!"; } } }
Можно немного упростить условия и написать так:
foreach (var ctrl in this.controls) { if ((ctrl is TextBox) && (ctrl as TextBox).Name.Equals("textBox2")) { (ctrl as TextBox).Text = "Hello MSDN!"; } }
- Изменено A.Permyakov 27 марта 2013 г. 18:11
- Помечено в качестве ответа Magals 27 марта 2013 г. 18:34
27 марта 2013 г. 18:07 -
Ну к примеру ищем все CheckBox у которых IsChecked = false и меняем это значение:
foreach (var checkBox in controlList.OfType<CheckBox>().Where(checkBox => checkBox.IsChecked == false)) { checkBox.IsChecked = true; }
- Изменено Kirill Bessonov 27 марта 2013 г. 18:13
- Помечено в качестве ответа Magals 27 марта 2013 г. 18:34
27 марта 2013 г. 18:10
Все ответы
-
Например, по имени.
ваш код будет примерно следующим
foreach (var ctrl in this.controls) { if (ctrl is TextBox) { if ((ctrl as TextBox).Name.Equals("textBox2")) { (ctrl as TextBox).Text = "Hello MSDN!"; } } }
Можно немного упростить условия и написать так:
foreach (var ctrl in this.controls) { if ((ctrl is TextBox) && (ctrl as TextBox).Name.Equals("textBox2")) { (ctrl as TextBox).Text = "Hello MSDN!"; } }
- Изменено A.Permyakov 27 марта 2013 г. 18:11
- Помечено в качестве ответа Magals 27 марта 2013 г. 18:34
27 марта 2013 г. 18:07 -
Ну к примеру ищем все CheckBox у которых IsChecked = false и меняем это значение:
foreach (var checkBox in controlList.OfType<CheckBox>().Where(checkBox => checkBox.IsChecked == false)) { checkBox.IsChecked = true; }
- Изменено Kirill Bessonov 27 марта 2013 г. 18:13
- Помечено в качестве ответа Magals 27 марта 2013 г. 18:34
27 марта 2013 г. 18:10