Элементы списка переполняются

#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.