DBGridのセル背景色変更と選択表示の競合を避けるには?

解決


はると  2006-02-22 20:32:04  No: 20140

TDBGridで、Fieldの値に応じて特定のセルの背景色を変えています。
方法は、OnDrawColumnCellイベント内で条件に応じて

TDBGrid(Sender).Canvas.Brush.Color := clRed;

などとし、最後に

TDBGrid(Sender).DefaultDrawColumnCell(Rect, DataCol, Column, State);

と実行するものです。
これによって背景色は望み通りに変わるのですが、
そのセルをクリックした際に、選択時の表示と競合してか、
真っ白(値が何か分からない)になってしまいます。
これを回避する方法はありますでしょうか?


Ru  2006-02-22 20:44:05  No: 20141

背景色の色を変更する際に,
必要に応じてフォント色を変更してあげればどうでしょ?

 DBGrid1.Canvas.Font.Color := clBlack;
 DBGrid1.Canvas.Brush.Color := clYellow;

 DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);


はると  2006-02-22 21:04:52  No: 20142

なるほど。
選択状態であることも視認できればベストなのですが、
ひとまずはこれで十分用が足ります。
ありがとうございました。


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

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






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