怎样设置DBGrid中的奇偶行的背景色 .

解决方案 »

  1.   

    DBGridEH才有~~设置OddRowColor的颜色,VertScrollBar下的Tracking为True
      

  2.   

    在 Form1 上放置 DBGrid1、Query1、DataSource1 三个数据库组件,设置相关的属性,使 DBGrid1 能显示表中的数据。然后,在 DBGrid1 的 onDrawColumnCell 事件中键入以下代码,然后运行程序
     procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
     DataCol: Integer; Column: TColumn; State: TGridDrawState);
    var i:integer;
    begin
      if gdSelected in State then Exit;  //隔行改变网格背景色: 
        if adoQuery1.RecNo mod 2 = 0 then
          (Sender as TDBGrid).Canvas.Brush.Color := clinfobk //定义背景颜色
      else
        (Sender as TDBGrid).Canvas.Brush.Color := RGB(191, 255, 223);  //定义背景颜色
     //定义网格线的颜色:
      DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
      with (Sender as TDBGrid).Canvas do //画 cell 的边框
      begin
        Pen.Color := $00ff0000; //定义画笔颜色(蓝色)
        MoveTo(Rect.Left, Rect.Bottom); //画笔定位
        LineTo(Rect.Right, Rect.Bottom); //画蓝色的横线
        Pen.Color := clbtnface; //定义画笔颜色(兰色)
        MoveTo(Rect.Right, Rect.Top); //画笔定位
        LineTo(Rect.Right, Rect.Bottom); //画绿色
      end;
    end;
      

  3.   

    楼上正解,关键是adoQuery1.RecNo mod 2和onDrawColumnCell
      

  4.   

    ron_xin(星雨) ( ) 
     DBGridEH才有~~设置OddRowColor的颜色,VertScrollBar下的Tracking为True我现在用的就是DBGridEH我要怎样去实现?
      

  5.   

    设置OddRowColor的颜色(其实就是偶数行的颜色),VertScrollBar下的Tracking为True
      

  6.   

    OndrawColumnCell事件中.
    begin
     with (sender as tdbgrid) do
     begin
      if datasource.dataset.recno mod 2 = 0 then  
            canvas.Brush.Color:=clwindow         //偶数行
         else
            canvas.Brush.Color:=$00FBDEDE;
            DefaultDrawColumnCell(rect,datacol,column,state);  //应用刷子
     end;
    end;
      

  7.   

    随便说一下,如果是dbgrideh,只要改一下将tdbgrid 改为tdbgrideh 就好了