こんにちは、プログラマーの皆さん、最後の質問で失礼します。悪い情報は悪い答えを与えます :) より良い例で説明しようと思います。私は 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;
//その後、キーダウンで
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;
ここまでは順調ですね。セルの編集を終了した後、左矢印と右矢印を使用して、サブアイテム間で選択したセルの左または右に移動する必要があります。そして、ナビゲートするときにセルの周りにフレームを影付けまたは描画するには、リストビューが必要です(Excelのように)。リストビューはレポート ビュー モードである必要がありますが、選択したセルの周りにフレームが表示されます。また、たとえば、列 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他の強化されたリストビューをテストしましたが、問題はありません。しかし、標準のListviewで構築したシステムは非常に複雑なので、とりあえず標準を使用したい...
よろしくお願いします...