小问题: 如何去掉DBGrid中被选中的Cell的深蓝色背景?(30分)

  • 主题发起人 主题发起人 Schiesser
  • 开始时间 开始时间
你的意思是不是说: 当cell从焦点状态切换到编辑状态后,字体颜色变成了黑色?
 
不是,我的dbgrid已经设为只读,而且option里全为false
 
>>当焦点移到edit时,
是什么意思?
 
绘制cell的方法参见我的第一次回答.
 
cAkk: 我需要把选中的cell用其他颜色绘制,行吗?
用menxin的方法, 将焦点移动到另外的控件,如Tedit时颜色就变回去了。

我觉得关键在于DBGrid的DrawColumnCell方法中State的判别。

再次请教!
 
1.用其他颜色绘制:
dbgrid1.Canvas.brush.color:=其他背景颜色;
dbgrid1.Canvas.FillRect(rect);
dbgrid1.Canvas.font.color:=其他字体颜色;
dbgrid1.Canvas.TextOut(rect.left,rect.top,column.Field.AsString);

2.其实只有当selected时才有颜色变化,所以在OnDrawColumnCell里面这样判断:

if gdselected IN State then
//当前Cell被选中
//用特殊颜色画该Cell
else
//用默认表格颜色画Cell
 
问题全部解决,添加20分,请menxin和cAkk来拿!
 
多人接受答案了。
 
后退
顶部