各位老大:
  怎样具体去改变一指定行和列的DBGrid内显示的内容的字体颜色
比如我要把第一行第三列的显示字体该为红色,宋体

解决方案 »

  1.   

    搜索一下drawdatacell,很多的例子
      

  2.   

    把 dgRowSelect 设为True, 在option里面.
    // DBGrid1的OnDrawColumnCell事件
    if ((State = [gdSelected]) or (State=[gdSelected,gdFocused])) then
        begin
          DBGrid1.Canvas.Font.Color :=ClYellow;
          DBGrid1.Canvas.Brush.Color :=clblue;  //关键
          DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
     end;
    DBGrid1.Canvas.Font.Color :=ClYellow;//字体颜色,可以改成你想要的
    DBGrid1.Canvas.Brush.Color :=clblue;  //背景颜色,可以改成你想要的
      

  3.   

    DBGrid.OnDrawColumnCell
      if (符合你的条件) then
      begin
          DBGrid1.Canvas.Font.Color := cred
      end
      else
        DBGrid1.Canvas.Brush.Color := clBackGround;
      DBGrid1.DefaultDrawColumnCell(Rect, DataCol,Column, State);
      

  4.   

    谢谢各位,假如我用的是一个listview,我该这样去任意改变某一级下的字体属性啊
      

  5.   

    同意把 dgRowSelect 设为True, 在option里面.
    // DBGrid1的OnDrawColumnCell事件
    if ((State = [gdSelected]) or (State=[gdSelected,gdFocused])) then
        begin
          DBGrid1.Canvas.Font.Color :=ClYellow;
          DBGrid1.Canvas.Brush.Color :=clblue;  //关键
          DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
     end;
    DBGrid1.Canvas.Font.Color :=ClYellow;//字体颜色,可以改成你想要的
    DBGrid1.Canvas.Brush.Color :=clblue;  //背景颜色,可以改成你想要的