stringGrid怎样实现隔行取同一种颜色?

解决方案 »

  1.   

    在 .StringGrid1DrawCell 事件中写上
       if ARow>0 then begin
        if ARow mod 2 = 0 then
          StringGrid1.Canvas.Brush.Color := $00DBDBDB
        else
          StringGrid1.Canvas.Brush.Color := clWhite;
        StringGrid1.Canvas.TextRect(Rect,Rect.Left,Rect.Top,StringGrid1.cell[ACol,ARow]);
      end;
      

  2.   

    建议你使用第三方控件,如DBgridEh,就具有单数行和偶数行颜色属性,设置即可。其它使用也非常简单、方便。不妨一试。
      

  3.   

    procedure TForm_Main.DrowColorOnCell(stringgrid:Tstringgrid;ACol, ARow: Integer;  Rect: TRect);
    begin
      with stringgrid do
      begin
        if (ACol > 0) and (ARow > 0) then
        begin
          if (ARow mod 2=0) then
          Canvas.Brush.Color := clskyblue
          else
          Canvas.Brush.Color:=$00EBDDD3;
          Canvas.FillRect(Rect);
          Canvas.Font.Name := 'Courier New';
          Canvas.TextOut(Rect.Left + 2, Rect.Top + 2, Cells[ACol, ARow]);
        end;
      end;
    end;
    这样就可以了!