首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

吃饭还在想着的有关问题*关于ListView*

2012-02-25 
吃饭还在想着的问题****关于ListView******procedure TForm1.Button1Click(Sender: TObject)vari:integer

吃饭还在想着的问题****关于ListView******
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
begin
for i:=0 to 7 do
 begin
  listview1.Columns.Add;
  listview1.Columns[i].Caption:='第'+inttostr(i)+'列';
  listview1.Columns[i].Width:=90;
end;

for i:=0 to 5 do
 with ListView1.Items.Add do
  begin
  Caption:='哈哈,我是美女';
  SubItems.Add('第0列内容:');
  SubItems.Add('第1列内容');
  SubItems.Add('第2列内容');
  SubItems.Add('第3列内容');
  SubItems.Add('第4列内容');
  SubItems.Add('第5列内容');
  SubItems.Add('第6列内容');
  end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
listview1.Items.Item[listview1.Selected.Index].Delete;
///..............怎么写???
end;


请看代码,我想实现Button2是删除当前选择行后,再定位到下一行!!!!
解释:如果当前选择的是最后一行,那么定位到删除后的ListView最后一行!!!
要不就是定位到删除那一行的下一行!!!
让定位的行部总处于选择的状态!!!
若ListView中无数据,则退出,不进行操作!!!

怎么会写呢??求助了???



[解决办法]
procedure TForm5.Button2Click(Sender: TObject);
var
FItem, FNext: TListItem;
begin
FItem := ListView1.Selected;
if Assigned(FItem) then
begin
FNext := ListView1.GetNextItem(FItem, sdBelow, [isNone]);
if not Assigned(FNext) then
FNext := ListView1.GetNextItem(FItem, sdAbove, [isNone]);

if Assigned(FNext) then
FNext.Selected := True;

FItem.Delete;
end;
end;

热点排行