在ListView中加入
aaa bbb ccc ddd
aaa bbb ccc ddd
aaa bbb ccc ddd
aaa bbb ccc ddd
aaa bbb ccc ddd
lov bbb ccc ddd
aaa bbb ccc ddd
aaa bbb ccc ddd
aaa bbb ccc ddd这里的lov不知道是在哪一行会出现.如何得到lov的行号呢?

解决方案 »

  1.   

    遍历 listview1.Items.Item[i].Caption
      

  2.   

    For I = 0 to ListView.item.count -1 do
    begin
      if ListView.Item[i].caption = 'love' then
          do sthend;
      

  3.   

    写个方法,遍历ListView,找到对应的行号;
    如果性能要求严格的话,用HashTable处理。
      

  4.   

    如果在Lov此行添加的时候,就让它把自己的行号赋值给一个全局变量,如何做呢?
    遍历整个ListView的话.数据多了,会有些慢!
      

  5.   

    添加之前先看下有多少行
    Listview.item.count
    那么再添加love这行的时候,它就是Listview.item.count+1了
      

  6.   

    在ListView的重绘事件中(一般是重绘行颜色)。但是你可以改一下。if Items.Caption = lov then
      iRow := Items.Index;其中iRow就是行号了.我忘记了ListView中的重绘事件是那个了。好像是DrawItem那个。你找找吧。
      

  7.   

    刚找到那个事件:
    procedure TForm1.ListView1CustomDrawItem(
      Sender: TCustomListView; Item: TListItem; State: TCustomDrawState;
      var DefaultDraw: Boolean);
    var
      iRow:Integer; //如果要在其他地方使用,最好是定义成全局变量 ,要不没用。
    begin
      if Item.Caption = 'lov' then //此如果是列的话就这样写Item.SubItem[列号]就可以了。
        iRow := Item.Index;
    end; 
      

  8.   

    方法有多种,一般是在ListView定义的事件中判断下Caption,然后赋值给一个全局变量,用DrawItem
      

  9.   

    遍历 listview1.Items.Item[i].Caption搜索