我想可能要在ondrawcell事件中来实现,我没有做过,但应该可以实现。

解决方案 »

  1.   

    上面都不行,一个简单的方法是:
      由两个stringgrid组成,第一个stringgrid作为fixrow,它的rows设为2,fixrow设为1,stringgrid.height等于defaultrowheight就可以;stringgrid2的fixrow设为0。
      

  2.   

    采用画出不同字体的文字:
    procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
      var
      Lft:integer;
      begin
      StringGrid1.Canvas.Font.Size:=20;
      StringGrid1.Canvas.Brush.Style:= bsClear;
     if ACol=0 then
      StringGrid1.Canvas.TextRect(Rect,2,2,'aaa');
       if ACol=1 then
       begin
       StringGrid1.Canvas.Font.Size:=12;
      
       Lft:=(ACol+1)*StringGrid1.DefaultColWidth;
       StringGrid1.Canvas.TextOut(Lft+5,2,'aaa');
      end;
      if ACol=2 then
       begin
       StringGrid1.Canvas.Font.Size:=14;
       Lft:=(ACol+1)*StringGrid1.DefaultColWidth;
       StringGrid1.Canvas.TextOut(Lft+10,2,'aaa');
      end;
     end;