使用listview显示记录,当记录数超过显示区域会自动加载滚动条,当我对其中一条记录修改后,再次刷新则无法定位到刷新前的记录?换句话说就是如何定位滚动条?知道的请跟帖!

解决方案 »

  1.   

    aaa:=listview1.ItemIndex;listview1.ItemIndex:=aaa;
      

  2.   

    问题基本解决:
    self.lvwRecord.Scroll(0, (self.lvwRecord.Selected.Index - 1) * 15);
    不过在记录数很多例如500时还是不准确。
      

  3.   

    最后采用方案:listview.font.size = 9.
      if self.lvwRecord.Selected <> nil then
      begin
        case self.lvwRecord.Selected.Index of
          0..50:    FSelectItemPosY := (self.lvwRecord.Selected.Index) * 14;
          51..100:  FSelectItemPosY := (self.lvwRecord.Selected.Index) * 16;
          101..1000: FSelectItemPosY := (self.lvwRecord.Selected.Index -5) * 17;
        end;
      end;
      self.lvwRecord.Scroll(0, FSelectItemPosY);
      

  4.   

    不会吧,是否ListView没有这样的功能呢?我想知道有好的方法吗?毕竟,用Index来这样控制好象不适合吧。因为记录数如果超过一千呢,这样的方法治标不治本。