Для простоты я воспользуюсь примером взятия любого другого символа из строки, но случай принятия любой другой строки из массива строк аналогичен.
Давайте «Hello» в качестве примера для вашей msglines строки
alt text http://www.javabat.com/doc/string_index.png
и будем говорить, что ваша глобальная переменная с я инициализируются 0, прежде чем войти в цикл. Ваш msglines.Lenght будет равен 5. На четвертой итерации через цикл (x == 3) вы попытаетесь получить доступ к msglines [6], который находится за пределами границ массива, следовательно, ошибка.
Вы, вероятно, хотели что-то вдоль линий
int x = 0;
while(x <= msglines.Lenght){
this.textBox5.Text += msglines[x];
x = x + 2;
}
или
for(x=0; x <= msglines.Lenght ; x+=2){
this.textBox5.Text += msglines[x];
}
Чтобы получить нечетные строки, которые вы бы начать с х инициализируется до 1.
Что касается какой из две полностью эквивалентные версии выше, чтобы использовать, я бы предложил использовать тот, который более читабельен для вас. По моему опыту, это всегда лучший выбор.
Что это за «c» в цикле и почему вы не используете «x»? Почему вы добавляете 2 в «c»? –
Вероятно, опечатка, но вам не нужна двойная \\ в пути к файлу –
(ответил на комментарий) –