比如有一个已经有很多项目的表.
设置了rowselect 为真.
现在要实现一个"按行"定位功能,比如我有一个编辑框,输入一个数字,然后我点下按钮就自动选中这行.

解决方案 »

  1.   


    procedure TForm1.FormCreate(Sender: TObject);
    var
      i: Integer;
    begin
      // 初始化 TListView
      lv1.ViewStyle := vsReport;
      lv1.RowSelect := True;  for i := 0 to 3 do
      begin
        lv1.Columns.Add.Width := 150;
      end;  lv1.Column[0].Caption := '字段1';
      lv1.Column[1].Caption := '字段2';
      lv1.Column[2].Caption := '字段3';
      lv1.Column[3].Caption := '字段4';  for i := 0 to 3 do
      begin
        with lv1.Items.Add do
        begin
          Caption := '第' + IntToStr(i + 1) + '行第1列';
          SubItems.Add('第' + IntToStr(i + 1) + '行第2列');
          SubItems.Add('第' + IntToStr(i + 1) + '行第3列');
          SubItems.Add('第' + IntToStr(i + 1) + '行第4列');
        end;
      end;end;procedure TForm1.btn1Click(Sender: TObject);
    var
      sRowIndex: Integer;
    begin
      if edt1.Text = '' then
        Exit;
      sRowIndex := StrToInt(edt1.Text);
      if (sRowIndex < 1) or (sRowIndex > lv1.Items.Count) then
        Exit;
      lv1.SetFocus;
      lv1.ItemIndex := sRowIndex - 1;
    end;正规的用于展示表格应该用tstringgrid或tdbgrid
      

  2.   

    ListView1.ItemIndex := 0;//第一行,以此类推
      

  3.   

        lvCell.Items[i].Selected := True;
        lvCell.Selected.MakeVisible(True);