新文章 网摘 文章 随笔 日记

TDBGrid控件设置背景色

1.给获得焦点的单元格换上好看的色彩

 

程序开始:

 ////////////////////////////////////////////////////////////////////////

 //在该事件中写上代码就可以了,

   procedure TMainForm.DBGrid1DrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
begin

  if gdfocused in state then       //获得焦点的单元格
 begin
   dbgrid1.Canvas.Brush.Color := clred;  //设置填充该单元格为红色
   dbgrid1.canvas.FillRect(rect);       //填充该区域
   dbgrid1.Canvas.Font.Color := clblack; //设置单元格中的字体为黑色

   //把文字绘制到该单元格中
   dbgrid1.Canvas.TextOut(rect.Left,rect.Top,adoquery1.FieldValues['id']);
  end;
end;

 

2.给DBGrid控件的不同行设置不同的色彩

程序开始:

///////////////////////////////////////////

//也可以在该事件中编写代码

procedure TMainForm.DBGrid1DrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
begin

 if dbgrid1.DataSource.DataSet.RecNo mod 2 = 0 then  //偶数行
 begin
     dbgrid1.Canvas.Brush.Color := clred; //偶数行为红色
 end else
 begin
     dbgrid1.Canvas.Brush.Color := clblack;//奇数行为黑色
 end;

  //////////////////////////////////////////////////////////

 //注:此行代码一定要加上,否则实现不了
 dbgrid1.DefaultDrawColumnCell(rect,datacol,column,state);

end;

 

http://blog.sina.com.cn/s/blog_5cf88d1f0100b96d.html

posted @ 2021-02-06 09:15  岭南春  阅读(193)  评论(0)    收藏  举报