2

こんにちは、プログラマーの皆さん、最後の質問で失礼します。悪い情報は悪い答えを与えます :) より良い例で説明しようと思います。私は 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で構築したシステムは非常に複雑なので、とりあえず標準を使用したい...

よろしくお願いします...

4

2 に答える 2

2

コンポーネントを使用しTStringGridます。これにより、矢印キーで列を切り替えることができます。

于 2013-10-17T09:10:46.740 に答える
0

これはTListView、Windows リスト ビュー コントロール SysListView32 のラッパーであるコントロールを使用することはできません。まあ、自分でコントロールをペイントすれば可能になると思いますが、それはしたくないと思います。

選択に影響を与える 2 つの主要なプロパティがあります。1 つ目は、プロパティによって制御されRowSelectます。その場合はFalse、最初の列のみを強調表示して選択できます。その場合RowSelectTrue、行全体を強調表示して選択できます。2 番目のスイッチは、MultiSelect複数の行を選択できるかどうかを制御するプロパティです。

目標を達成するには、別のコントロールに切り替える必要があると思います。私は、Mike Lischke の Virtual Tree View コントロールが、あなたが望むように動作するよう説得できることを期待しています。

于 2013-10-17T09:08:21.927 に答える