Похоже, вам не хватает некоторых if
операторов для управления при вызове каждого блока кода.
У вас есть три отдельных блока кода, предположительно для каждого компонента, но, поскольку нет условий для управленияВсе блоки выполняются всякий раз, когда выбирается строка в любом компоненте.(В третьем блоке также есть еще один блок - не знаю, почему вы так написали.)
Когда вы выходите за пределы строки 3 во 2-м и 3-м компонентах, код для 1-гоКомпонент запускается и аварийно завершает работу, когда пытается получить 4-ю строку в массиве для компонента 1 (который не существует).
Поскольку индексы компонентов начинаются с нуля, условия должны быть примерно такими:
if (component == 0)
{
//code for 1st component here...
}
else if (component == 1)
{
//code for 2nd component here...
}
else if (component == 2)
{
//code for 3rd component here...
}
Вместо этого вы также можете использовать оператор switch
.