再次问候程序员,我原谅最后一个问题。错误的信息给出了错误的答案:) 我将尝试用一个更好的例子来解释。我在 Delphi XE3 中使用 TListview(我知道它不适合这种用途),下面我有按键代码。
但首先我用数据填充列表视图:
procedure TForm1.FormCreate(Sender: TObject);
Var
I,C : Integer;
Item : TListItem;
begin
for C := 0 to 8 do
begin
ListView1.Columns[C].caption := 'Ip Address '+ IntToStr(C);
Item:=ListView1.Items.Add;
Item.Caption:=Format('%d.%d',[i,1]);
Item.SubItems.Add(Format('%d.%d',[i,2]));
Item.SubItems.Add(Format('%d.%d',[i,3]));
Item.SubItems.Add(Format('%d.%d',[i,4]));
Item.SubItems.Add(Format('%d.%d',[i,5]));
Item.SubItems.Add(Format('%d.%d',[i,6]));
Item.SubItems.Add(Format('%d.%d',[i,7]));
Item.SubItems.Add(Format('%d.%d',[i,8]));
end;
end;
//然后在keydown上
procedure TForm1.ListView1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
Var LItem: TListItem;
begin
if Key = VK_RETURN then
if Assigned(ListView1.Selected) then
ListView1.Selected.EditCaption;
到目前为止,一切都很好。现在,在结束编辑单元格后,我需要使用左右箭头导航到子项中所选单元格的左侧或右侧。当我导航时,我需要 Listview 在单元格周围阴影或绘制一个框架(如 excel)。Listview 应该处于报告视图模式,但仍显示选定单元格周围的框架。我还需要设置它,例如只有 col 3、5 和 6 应该可以使用键。
我尝试了一些代码,但它不起作用。下面是我是如何开始的。
if Key in [VK_LEFT,VK_RIGHT] then
case Key of
VK_LEFT: if ListView1.Selected.Index < ListView1.Columns.Count +1 then
begin
end;
VK_RIGHT: if ListView1.Selected.Index > ListView1.Selected.Index -1 then
Begin
end;
end;
任何帮助都会很棒...在此先感谢您。PS我已经测试了其他增强的Listviews,这不是问题。但是我使用标准 Listview 构建的系统非常复杂,所以我现在想使用标准...
此致...