关于DBGrid的选中后蓝条内字符的反白问题!急!(85分)

  • 主题发起人 主题发起人 sh0
  • 开始时间 开始时间
S

sh0

Unregistered / Unconfirmed
GUEST, unregistred user!
DBGrid的选中后蓝条内字符的反白问题!
我在程序里改变了DBGrid内每行的字体颜色,但当运行时选中此列后,蓝条内的字符不反白
还保持原来的颜色,导致设置蓝色字体的列在蓝条选中后字符就看不见了~!
请问如何在程序内设置列的选中后的反白!急!
 
在 OnDrawColumnCell 中自己设置 Canvas 的 Brush 和 Font 的颜色。
具体参见 TDBGrid 的帮助文档。
 
我这测不出你所说的情况。
是否系统紊乱了?你试着重启一下系统。
如果不行,将 DBGrid 删除,再加一个,重新设置一下。
 
在draw时,用state判断状态是否是selected,区别开。
 
请在DBGRID的自绘过程中加入以下代码,能够实现选中后不反白的功能!

先在dbgrid中设置DefaultDrawing属性为false!

procedure Ttest_Win.DBGridDrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
DbGrid.Canvas.brush.color:=DbGrid.Color;
DbGrid.Canvas.FillRect(rect);
dbgrid.Canvas.font.color:=clblack;
dbgrid.Canvas.TextOut(rect.left,rect.top,column.Field.AsString);
end;
 
多人接受答案了。
 
后退
顶部