#c# #listbox
#c# #listbox
Вопрос:
Всякий раз, когда я использую цикл for, поэтому выбираю каждый элемент в Listbox с помощью Listbox.setSelected(i), он переполняет Listbox. у кого-нибудь есть решение?
Комментарии:
1. Что вы подразумеваете под «переполнением»?
2. Какой listbox … winforms? Wpf? SL? веб-формы? cf? И какой код зацикливать / задавать?
3. Я надеюсь, что у вас проблема в вашем цикле, массив элементов начинается с 0. Пожалуйста, опубликуйте код, который был бы полезен
4. Опубликуйте скриншот, покажите нам
for
код цикла, который вы используете, и укажите, какую технологию вы используете (WinForms, WPF, WebForms и т.д.)
Ответ №1:
Поскольку вы упомянули for
и overflow, я предполагаю, что проблема заключается в диапазоне индексов; большинство индексаторов .NET основаны на 0, поэтому вам нужно:
for(int i = 0 ; i < collection.Length ; i )
{
collection[i].DoSomething();
}
Обратите также внимание, что в большинстве случаев foreach
проще и безопаснее:
foreach(var item in collection)
{
item.DoSomething();
}
Комментарии:
1. Я начал с того, что это не так. Я сделал именно то, что вы написали, и использовал метод Listbox.setSelected[i]. и когда я говорю переполнение, я имею в виду, что индекс переполняет listbox и это портит форму. Я бы очень хотел получить ответ на этот
2. @CoNfI «означает, что индекс переполняет listbox и это портит форму» по-прежнему ничего не добавляет (как говорит Коди — возможно, добавьте скриншот) — и вы все еще не сказали нам, какую технологию вы используете; «c #» «listbox» имеет по крайней мере 4 различных толкования
3. вот картинка — i53.tinypic.com/2qwn5t5.jpg . Что вы имеете в виду, спрашивая, какую технологию я использую? Я просто выполняю цикл и выбираю все элементы внутри ListBox. Ранее вы упоминали, что цикл foreach был бы намного безопаснее, я просто не могу это сделать, как мне определить переменную элемента ListBox? кстати, у меня не было возможности ПОБЛАГОДАРИТЬ ТЕБЯ, так что, спасибо тебе, приятель, ты действительно помогаешь мне.
4.@CoNfi — «Что вы имеете в виду, спрашивая, какую технологию я использую?» Не существует единой, однозначной вещи, называемой a
ListBox
. Каждый стек пользовательского интерфейса имеет отдельный,ListBox
не связанный с другими. В Windows Forms есть один. В WPF есть один. У Silverlight есть один. В Web Forms есть один. В Windows Mobile есть один. Это изображение может быть WPF или Windows Forms; что это такое?5. О, извините, понял. Это Windows Forms.