编号ListView

qwe*_*taz 1 delphi listview enumeration lazarus

如何在ListView(vsReport)中编号项?现在我有类似的东西:

Item := ListView1.Items.Add;
Item.Caption :=inttostr(Item.Index+1); 
Run Code Online (Sandbox Code Playgroud)

但它仅在项目未排序时有效.如果我排序一切都是混合的.

Dav*_*nan 5

每当列表排序时,您需要遍历项目并更新标题.

for i := 0 to ListView1.Items.Count-1 do
  ListView1.Items[i].Caption := IntToStr(i+1);
Run Code Online (Sandbox Code Playgroud)

我个人会切换到在虚拟模式下使用列表视图,这使得添加索引列变得微不足道.正如您目前所拥有的那样,您需要努力使列表的内容与基础数据保持同步.使用虚拟列表视图解决问题.