TListViewの点線を表示させないようにするには?

解決


山田  2009-07-01 01:12:33  No: 34962

Delphi 7 pro
Vista business

名  前|性別|血液型|
=====================
山  田|男  |A    |
---------------------
田  中|女  |B    |
---------------------

上記のようなTListViewを使用しています。
行単位で選択できるようにし、該当行をクリックすると選択された行全体の背景が青色で表示されます。
その時にchangeイベントが実行され、各Editにデータ表示されます。

山田行や田中行を選択した時は、各Editにデータが表示されるのはいいのですが、
田中行の下の空白行を選択したときには、各Editは空白表示になります。
しかし、田中行から空白行を選択した時には、点線の囲いが田中行に残ってしまいます。

ユーザから見ると未だ点線の囲いが田中行にあるので、田中行を選択しているように見えてしまいます。
点線の囲いを、削除方法はありませんか?

よろしくお願いします。


ぽむぽむ  2009-07-01 01:36:13  No: 34963

ListView.Selected := nil;
なのかな?


ttt  2009-07-01 07:59:05  No: 34964

点線はListItem.Focused or ItemFocusedの方だね
SelectedとFocusedは一致させといた方がいいと思うけど


山田解決  2009-07-01 21:52:53  No: 34965

>>ぽむぽむ様、ttt様
お返事ありがとうございます。

ItemFocusedにて機能を実現することができました。
ありがとうございました。

以下、ItemFocusedを追加したソースです。

procedure Form1.ListView1(Sender: TObject; Item: TListItem;
  Change: TItemChange);
var
  intSelectedIndex : Integer;
begin

  try
    //選択行番号を取得する
    intSelectedIndex := ListView1.Selected.Index;
  except
    //点線を残らないようにする
    ListView1.ItemFocused := nil;

    //各Editをクリア
    ・・・・

    Exit
  end;

  //選択された行のデータを各Editに表示
  ・・・・・
  
end;


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加