'

alswlek의 이미지
익명 사용자의 이미지

//모든 컨트롤 갯수 만큼 for문을 돌림, 체크박스 뿐아니라 버튼, 라벨까지 전부 포함

부분에서 checkBoxIndex를 사용하여 cbs배열에 값을 넣었습니다.

그럼 만약 체크박스가 3개였다면

checkBoxIndex는 현재 3이 되는거죠

그런데 문제는

에러 나는 부분에서

checkBoxIndex를 초기화하지 않고 그냥 사용하고 있다는 점입니다.

위에서 말했다시피, cbs 배열의 길이는 현재 3이고

checkBoxIndex 의 값 또한 3입니다.

에러나는 부분의 코드를 보면

cbs[checkBoxIndex++]로 되어있는데 이건 결국 cbs[3]이란 소리가 되죠

C#의 경우, 배열의 인덱스는 0 ~ n-1 까지입니다.

즉, 배열의 인덱스 범위를 넘어서는 부분을 읽으려고 해서 에러가 발생하는거죠.

파일이 존재하는지 체크하는 부분 바로 위에

checkBoxIndex 를 0으로 다시 초기화하고 쓰면 우선 에러는 나타나지 않을 것입니다.