Объясните, что делает этот код? - C#
Формулировка задачи:
Доброго времени суток!
Читаю вот эту тему Выделить все CheckBox!. Отвечающий уже как 3 года тут не показывается, поэтому прошу помощи у вас. Помогите разобратся в коде, а то со справкой как-то не очень у меня это сделать получается...
Здесь мы объявляем переменную gb типа Control, которая будет что-то делать в этой форме с Control-ами?
Тут ищем первое вхождение со строкой "GroupBox"? Почему условие ">-1"?
Это выражение совсем не понял...
foreach (Control gb in this.Controls)
{
if (gb.GetType().ToString().IndexOf("GroupBox")>-1)
{
foreach (Control che in gb.Controls)
{
if (che.GetType().ToString().IndexOf("CheckBox") > -1)
{
CheckBox che1 = (CheckBox)che;
che1.Checked = true;
}
}
}
}foreach (Control gb in this.Controls)
if (gb.GetType().ToString().IndexOf("GroupBox")>-1)CheckBox che1 = (CheckBox)che;
Решение задачи: «Объясните, что делает этот код?»
textual
Листинг программы
// Цикл по всем элементам управления формы
foreach (Control gb in this.Controls)
{
// Получаем имя типа элемента управления - gb.GetType().ToString()
// Затем проверяем есть ли в имени типа строка GroupBox
// IndexOf возвращает позицию найденной строки. Если строка не найдена, то метод вернет -1
if (gb.GetType().ToString().IndexOf("GroupBox")>-1)
{
// Цикл по всем элементам управления внутри GroupBox
foreach (Control che in gb.Controls)
{
// Проверяем содержит ли имя типа элемента управления строку CheckBox
if (che.GetType().ToString().IndexOf("CheckBox") > -1)
{
// Т.к. мы уже убедились что в переменной che хранится значение типа CheckBox,
// то выполняем приведение значения переменной che к типу CheckBox
CheckBox che1 = (CheckBox)che;
che1.Checked = true;
}
}
}
}