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

正规的用于展示表格应该用tstringgrid或tdbgrid
------解决方案--------------------
ListView1.ItemIndex := 0;//第一行,以此类推
------解决方案--------------------
比如有一个已经有很多项目的表.
设置了rowselect 为真.
现在要实现一个"按行"定位功能,比如我有一个编辑框,输入一个数字,然后我点下按钮就自动选中这行.
------解决方案--------------------
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
------解决方案--------------------
ListView1.ItemIndex := 0;//第一行,以此类推
------解决方案--------------------