DBGrid.Refresh;还有OnDrawColumnCell事件。

解决方案 »

  1.   

    No.3 不推荐
    DBGrid1.Visible := not DBGrid1.Visible;
    DBGrid1.Visible := not DBGrid1.Visible;
      

  2.   

    参考:
    procedure TForm1.DBGrid1DrawColumnCell(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;
      

  3.   

    提示你,直接调用DBGrid1DrawColumnCell就可以了,具体怎么调用就不用我说了吗?就一个过程………………
      

  4.   

    to lijx18(lijx),wmh_654321(qqq):
     你们都测试过了吗?
     OnDrawDataCell中的参数可不时随便就写出来的
      

  5.   

    TO:zswang(伴水)(需要充充电) 大侠:
       谢谢你的参考代码,我不知道怎么触发这个事件,如果是直接调用 
       DBGrid1OnDrawDataCell(),它的那些参数该是什么呢??   谢谢
      

  6.   

    具体的参数写法和其他方法都不能直接解决你的问题参考如下代码
    type
      TForm1 = class(TForm)
    //................
        DBGrid1: TDBGrid;
        DataSource1: TDataSource;
        procedure DataSource1DataChange(Sender: TObject; Field: TField);
        procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
          DataCol: Integer; Column: TColumn; State: TGridDrawState);
      private
        { Private declarations }
        FCurrBook: string;
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumn; State: TGridDrawState);
    begin
      if FCurrBook = TDBGrid(Sender).DataSource.DataSet.Book then begin
        TDBGrid(Sender).Canvas.Brush.Color := clHighlight;
        TDBGrid(Sender).Canvas.Font.Color := clRed;
        TDBGrid(Sender).DefaultDrawColumnCell(Rect, DataCol, Column, State);
      end;
    end;procedure TForm1.DataSource1DataChange(Sender: TObject;
      Field: TField);
    begin
      FCurrBook := TDataSource(Sender).DataSet.Book;
      DBGrid1.Refresh;
    end;//............
      

  7.   

    //你先测试测试吧
    procedure  TForm1.DBGrid1DrawColumnCell(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; 
      

  8.   

    zswang(伴水)(需要充充电) 的对啦 。还不快很分呀。