是否可以设置DBGird每一行的背景颜色和字体颜色(100分)

  • 主题发起人 主题发起人 meckyhan
  • 开始时间 开始时间
需要在OnDrawColumnCell事件中自已对Canvas进行操作,这事件提供的参数足够
完成你的任务了。
 
首先将DBGrid的DefaultDrawing轩为False
之后在它的OnDrawDataCell事件编写响应代码。
DBGrid1.Canvas.Brush.Color:=所需的着色值;
DBGrid1.Canvas.FillRect(Rect);//Rect为该事件的参数
DBGrid1.Canvas.TextOut(Rect.Left+2,Rect.Top+2,Field.AsString);


 
在onDrawColumn事件中加入:
。。。
dbgrid1.Canvas.Font.Style:=[fsBold];//改字型
dbgrid1.Canvas.Font.Color:=clRed;//改字的颜色
dbgrid1.Canvas.Brush.Color:=clyellow;//改背景
dbgrid1.DefaultDrawColumnCell(rect,DataCol,column,state);
搞定
 
在DBGrid1的DrawColumnCell 事件中写入
if ... then
dbgrid1.canvas.Font.Color:=clred
else
dbgrid1.canvas.Font.Color:=clblue
end;
并把dbgrid1的绘图属性设为ownerdraw即可
 
多人接受答案了。
 
謝謝老貓為我們主持公道 :-)
 
后退
顶部