Столкнулся с такой проблемой...
Я автоматически создаю чекбоксы (до этого в начале программы я объявляю CheckBox box; для того, чтобы мог их использовать во всей программе):
int startLocation = 142;
for (i = 0; i < ingridients.Length; i++)
{
box = new CheckBox(); //Create new checkBox
box.Tag = i;//CheckBox (Tag 0-..)
box.TabIndex = 8 + i;//Последовательность "выбора" через TAB
box.Text = ingridients[i];
box.AutoSize = true;
box.Location = new Point(2, startLocation);
startLocation += 25;
this.Controls.Add(box);
}
и при закрытии окна мне надо пробежаться по выделенным из CheckBox'ов.
Но тут я сталкиваюсь с проблемой: я не могу обратиться ни к одному из чекбоксов, так как имена у них всех одинаковые.
Я пытался сделать так, но box.Tag[i] подчеркивается красным и не работает(что, в принципе, логично).
)
for (int n = 0; n<i; n++)
{
if (box.Tag[n].Checked = true )
{
}
}
Может быть можно использовать что-то кроме tag'a...
Прошу мне помочь!
Буду очень признателен!
P.S. Я только недавно начал пользоваться StackOverflow, так что прошу не быть слишком критичными по отношению ко мнe.
Ссылки на все контролы хранятся в коллекции Controls
, у которой есть метод OfType
(расширение из System.Linq
), позволяющий отфильтровать их по заданному типу:
foreach (CheckBox chbox in this.Controls.OfType<CheckBox>())
{
if (chbox.Checked) { /*...*/ }
}
Пути 2:
1.Создать List и добавлять туда инициализированные чекбоксы
List<Checkbox> _chBoxLst = new List<Checkbox>();
int startLocation = 142;
for (i = 0; i < ingridients.Length; i++)
{
_chBoxLst (new CheckBox()); //Create new checkBox
//дальше идентично твоему коду
}
2.Пройтись по всем контролам на форме и выделить из них чекбоксы а потом уже делать с этим списком что нужно. (описан в ответе t3f )
Лично я пошел бы по первому пути. Чисто потому, что если в будущем появятся на форме новые чекбоксы которые логически отвечают за другие вещи, это может создать проблемы.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Свойство Value у PieSlice доступно только для чтенияПолучается, что для обновления диаграммы нужно каждый раз удалять сегмент из PieSeries
Подскажите пожалуйста! Пишу мини програму тестирования, прописал создание интерфейса метод вызывается из main
Сейчас у меня есть DataGridView, в котором отображается 1 из связанных таблицmdb Есть фрагмент кода:
Что я пишу не так? По идее, этот скрипт должен двигать прицел по кругу, вокруг персонажа и следовать за указателем мыши, но прицел крутится...