这种问题用搜索一下一大堆帖子! 下面这个是在大富翁上搜出的:这是让DBGrid隔行的颜色不同 procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); begin if( gdSelected in State)then //如果是被选中的 begin DBGrid1.Canvas.Brush.Color:=clBlue; //选中的背景色为clBlue DBGrid1.Canvas.Font.Color:=clYellow; //选中的字体颜色为clYellow end else if self.DataSource1.DataSet.RecNo mod 2=1 then //用self.DataSource1.DataSet.RecNo mod 2 //来判断行数产生隔行 DbGrid1.Canvas.Brush.Color:=clRed else DBGrid1.CanVas.Brush.Color:=clWhite;
for(int i=0;i<DBGrid1.Columns.Count;i++)
{
if(i%2==0)
DBGrid1.Columns.Items[i].Color=clAqua;
else
DBGrid1.Columns.Items[i].Color=clInfoBk;
}
{
if(i%2==0)
DBGrid1.Columns.Items[i].Color=clAqua;//颜色一
else
DBGrid1.Columns.Items[i].Color=clInfoBk;//颜色二
}
下面这个是在大富翁上搜出的:这是让DBGrid隔行的颜色不同
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if( gdSelected in State)then
//如果是被选中的
begin
DBGrid1.Canvas.Brush.Color:=clBlue;
//选中的背景色为clBlue
DBGrid1.Canvas.Font.Color:=clYellow;
//选中的字体颜色为clYellow
end
else
if self.DataSource1.DataSet.RecNo mod 2=1 then
//用self.DataSource1.DataSet.RecNo mod 2
//来判断行数产生隔行
DbGrid1.Canvas.Brush.Color:=clRed
else
DBGrid1.CanVas.Brush.Color:=clWhite;
DBGrid1.DefaultDrawcolumnCell(rect,DataCol,Column,State);
//其他默认
end;