|
임프랍니다.
아래 김성진님이 말씀하신대로, 아주 간단한 방법은 없습니다.
리스트아이템의 캡션과 인덱스는 직접적인 관련이 없으니까요.
하지만 수작업이라도 좀 편한 방법은 있지요. 리스트뷰의 OnInsert 이벤트를 이용하면 됩니다.
다음과 같이 새 아이템을 추가한 경우에...
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int NewIndex = ListView1->Selected ? ListView1->Selected->Index : 0;
TListItem* NewItem = ListView1->Items->Insert(NewIndex);
NewItem->Caption = NewItem->Index;
NewItem->SubItems->Add(Edit1->Text);
}
다음과 같이 OnInsert 이벤트 핸들러를 작성하세요.
void __fastcall TForm1::ListView1Insert(TObject *Sender, TListItem *Item)
{
for(int i=Item->Index+1; i<ListView1->Items->Count; i++)
ListView1->Items->Item[i]->Caption = ListView1->Items->Item[i]->Index;
}
그럼 이만...
김선영 님이 쓰신 글 :
: 이곳에서 많은 도움을 얻고 있는 왕초보입니다..
: ListView 에서 captiondmf
: 한개의 item 이 추가될때마다 0부터...1씩 증가를 시키는데..
: 만약 새로운 item이 추가될때
: 새로 insert되는 caption에는 제대로 되나..
: 한칸 밑으로 밀려나는 index는 변화가 없습니다.
: 그래서..각 item들을 insert나 delete를 할경우 index가
: 정렬이 안되고 엉망이 되어버립니다.
: 이럴때 어찌 해야 할지
:
: (예)
: index(Caption) item(subitem)
: 0 A
: 1 E <-- insert
: 1 B
: 2 C
: 4 F <-- insert
: 3 D
:
:
:
|