如何确定点击listview的哪一个item的哪一个subitem?

解决方案 »

  1.   

    var
      Node:TTreeNode
    begin
      Node:=Treeview.Selected;
      showmessage(Node.text);
    end;这样试试看
      

  2.   

    terence4444(T4) ,感谢你的回复,不过我问的是listview,不是treeview,能不能讲讲listview
      

  3.   

    汗看错了 不好意思
    其实是差不多的var
      Item:TListItem;
    begin
      Item:=ListView.Selected;
      showmessage(Item.text);
    end;多看看文档,就会知道了
    拖一个ListView到窗体上,选中它按F1可以看所有的信息
      

  4.   

    TListItem下会有SubItem,它有Text属性 ListItem是没有的
      

  5.   

    其实我想问的是,当listview的ViewStyle属性设为vsReport时,在点击listview时有没有办法获得被点击那一行那一列的字符串?
      

  6.   

    showmessage(ListView.Selected.SubItems.Text);
    是这样吗?看看有没有你要的东西在里边
      

  7.   

    或者这样更方便一些:showmessage(ListView.Selected.Caption);
      

  8.   

    ListView.Selected.Caption是被选行的第一列字符串,ListView.Selected.SubItems.Text是被选行第2列后所有列的字符串,能得到被选行被选列的字符串吗?
      

  9.   

    据我所知,设置成 vsReport 时,只能选择所有行有第一列的.
    是我记错了吗?
      

  10.   

    能选择的只有ListItem,SubItem是选不到的
      

  11.   

    问题解决,分数太少……uses
      CommCtrl;procedure TForm1.ListView1Click(Sender: TObject);
    var
      plvhti: TLVHitTestInfo;
      pt: TPoint;
    begin
      GetCursorPos(pt);
      plvhti.pt := ListView1.ScreenToClient(pt);
      //ItemIndex
      SpinEdit1.Value := ListView_SubItemHitTest(ListView1.Handle, @plvhti); 
      // SubItem Index
      SpinEdit2.Value := plvhti.iSubItem;
    end;