如何在Delphi TListView中获取所选项目的当前索引?

0vvn1miw  于 2022-09-21  发布在  其他
关注(0)|答案(4)|浏览(295)

我有一个表单中的TListView,我想知道所选项目的索引。我试图找到提供该信息的TListView的方法或属性,但我唯一找到的是lvClients.Selected,它没有给出该项的索引。

如何在我的TListView中获取所选项目的索引?

5t7ly7z5

5t7ly7z51#

使用ItemIndex属性。

值为-1表示未选择。

摘自文档:
读取ItemIndex以确定选择了哪一项。列表中的第一项的索引为0,第二项的索引为1,依此类推。如果未选择任何项,则ItemIndex的值为-1。如果List控件支持多个选定项,则ItemIndex是具有焦点的选定项的索引。

vvppvyoh

vvppvyoh2#

使用Selected项的Index属性

if lvClients.Selected <> nil then
  index := lvClients.Selected.Index;
z3yyvxxp

z3yyvxxp3#

在单击事件()上,您还可以到达包含子项的列:

TListview(sender).items[TListview(sender).itemindex].subitems[1]);
dba5bblo

dba5bblo4#

您必须将其强制转换为:TListViewItem(ListView1.Selected).Index,例如:

procedure TfrmMain.ListView1ItemClick(const Sender: TObject;
  const AItem: TListViewItem);
begin

  { Old usage was like this:
    // Label1.Text := ListView1.Selected.Text;
  }
  // Now we have to cast it as such:

  Label1.Text := TListViewItem(ListView1.Selected).Index;

  // New usage of TListViewItem's selected item properties
  {
    TListViewItem(ListView1.Selected).ButtonText;
    TListViewItem(ListView1.Selected).Text;
    TListViewItem(ListView1.Selected).Index;
    TListViewItem(ListView1.Selected).Detail;
   ...
  }
end;

相关问题