{with  Dbgrid_List_mx do
  if datasource.dataset.active then
    if SumList.RecNo mod 2 = 1 then
      Background := $00FFC4C4
    else
      Background := $00FFDDDD;
  }用的是DBGridEh

解决方案 »

  1.   

    dbgrid1.canvas.lock;
    if dataset.recno mod 2 =1 then
       dbgrid1.canvas.brush.color:=clbtnface
    else
       dbgrid1.canvas.brush.color:=clwhite;
    dbgrid1.canvas.unlock;
      

  2.   

    属性dbGrid1.defaultdrawing:=false
    procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;
      Field: TField; State: TGridDrawState);
    var
     s:string;
    begin
     if (DBGrid1.DataSource.DataSet.RecNo) mod 2 = 0  then
     begin
      DBGrid1.Canvas.pen.Color:= clblack;
      DBGrid1.Canvas.brush.Color:= clred;
      s:=Field.AsString;
      DBGrid1.Canvas.FillRect(rect);
      DBGrid1.Canvas.TextOut(rect.Left,Rect.top,s);
     end
     else
     begin
     end;
     DBGrid1.DefaultDrawing:=true;
    end;试试这个吧
      

  3.   

    if (tbgrid(dbgrid1).row mod 2)=0 then
       dbgrid1.canvas.color:=clbtnface
    else
       dbgrid1.canvas.color:=clwhite
      

  4.   

    procedure TFormDocBrowse.DBGridBodyDrawColumnCell(Sender: TObject;
      const Rect: TRect; DataCol: Integer; Column: TColumn;
      State: TGridDrawState);
    begin
      if not Odd(TDBGrid(Sender).DataSource.DataSet.RecNo) then begin
        TDBGrid(Sender).Canvas.Brush.Color := clSkyBlue;
        TDBGrid(Sender).DefaultDrawColumnCell(Rect, DataCol, Column, State);
      end;
    end;