12

TListBox でアイテム選択のフォーカス カラーとテキスト カラーを変更することはできますか?

プロジェクトでテーマが有効になっていない場合、またはリスト ボックス スタイルが owner-draw に設定されている場合、アイテムの周囲の選択は青く塗られます。これは、システムの外観設定によってグローバルに定義されていると思います。

選択したアイテムの色をカスタム カラーに変更したいと考えています。

たとえば、結果は次のようになります。

ここに画像の説明を入力

例を説明するために、最後のリストボックスがペイントで変更されていることに注意してください。

4

3 に答える 3

19

これを試して:

procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
  Rect: TRect; State: TOwnerDrawState);
begin
  with (Control as TListBox).Canvas do
  begin
    if odSelected in State then
      Brush.Color := $00FFD2A6;

    FillRect(Rect);
    TextOut(Rect.Left, Rect.Top, (Control as TListBox).Items[Index]);
    if odFocused In State then begin
      Brush.Color := ListBox1.Color;
      DrawFocusRect(Rect);
    end;
  end;
end;
于 2011-12-19T16:04:40.153 に答える