C #: цикл не повторяется - PullRequest
0 голосов
/ 24 ноября 2011

У меня есть цикл for, который для каждого элемента в списке будет выполнять подпрограмму.Что странно, цикл for не повторяется вообще.Мне пришлось заставить его выполнять итерацию к первому элементу, но после завершения выполнения всех операций по этому элементу он просто остановился.

Как я могу заставить его повторяться для каждого элемента в списке?1004 * Вот мой код:

listBox7.SelectedIndex = 0;

for (int i = 0; i < listBox7.Items.Count; i++)
{
    sub1();
    sub2();

    listBox1.Items.Add(listBox7.SelectedItem.ToString() + "\r");

    while (listBox7.SelectedItems.Count > 0)
    {
        listBox7.Items.Remove(listBox7.SelectedItems[0]);
    }

    webBrowser1.Navigate("http://www.google.com");
}

1 Ответ

4 голосов
/ 24 ноября 2011

Скорее всего, вы удаляете все элементы во внутреннем операторе while, не оставляя ничего для повторения во втором проходе.

Если ваш listBox1 содержит более 1 элемента, исключение всегда будет вызыватьсяследующая строка:

listBox1.Items.Add(listBox7.SelectedItem.ToString() + "\r");

, поскольку выбранный элемент больше не существует.

Вот почему обработка исключений, даже если вы просто что-то тестируете, является критической.

Если ваша цель - обработать каждый элемент в listBox7, вы можете выполнить это, переместив следующую строку:

listBox7.SelectedIndex = 0;

внутри цикла for, над линией

sub1();
...