|
ListView에는 xml에서 불러온 값들이 저장되어 있구요.
버튼 클릭시 선택된 칼럼을 삭제하고 xml에서도 삭제하는 중에 에러가 발생합니다.
리스트뷰는 report 형태이며, 데이터가 아래처럼 채워져 있다면
index0 ㅁㅁㅁㅁ
index1 ㅂㅂㅂㅂ
index2 ㄱㄱㄱㄱ
index3 ㄴㄴㄴㄴ
index 0,1,2는 지우는데 아무 문제가 없습니다. 그런데
index3을 지우게 되면 ListView11->Items->Clear(); 부분에서 EListError가 나면서 'List index out of bounds(3)'가 뜹니다.
삭제가 아예 안된다면 모르겠지만 맨 아래 항목을 지울때만 인덱스를 벗어나니 답답합니다.ㅠㅠ
아래는 리스트뷰 항목 삭제시 코드 입니다.
버튼클릭시 이벤트 (삭제)
_di_IXMLcomnoticeType ComNotice = Getcomnotice(XMLDocument3); //공지사항 xml load
ComNotice->Delete(ListView11->ItemIndex); //리스트뷰에서 선택된 Index에 해당하는 xml 삭제
XMLDocument3->SaveToFile(XMLDocument3->FileName); //xml 저장
ListView11->Items->Clear(); //리스트뷰 클리어 <<여기서 에러가 발생합니다.
for(int i=0; i<ComNotice->Count; i++) //리스트뷰 갱신
{
ListView11->Items->Add();
ListView11->Items->Item[i]->Caption = ComNotice->clist[i]->cnum + 1;
ListView11->Items->Item[i]->SubItems->Add(ComNotice->clist[i]->ctitle);
ListView11->Items->Item[i]->SubItems->Add(ComNotice->clist[i]->cwriter);
ListView11->Items->Item[i]->SubItems->Add(ComNotice->clist[i]->ccheck);
ListView11->Items->Item[i]->SubItems->Add(ComNotice->clist[i]->cwdate);
ListView11->Items->Item[i]->SubItems->Add(ComNotice->clist[i]->cwhms);
}
|