读书人

DBGrid如何重绘

发布时间: 2012-11-03 10:57:44 作者: rapoo

DBGrid怎么重绘?


类似这样的效果,发现和stringgrid不一样.

[解决办法]
这是调整后的颜色,你改为自己喜欢的颜色就OK了

C/C++ code
void __fastcall TForm1::DBGrid1DrawColumnCell(TObject *Sender,      const TRect &Rect, int DataCol, TColumn *Column,      TGridDrawState State){   class   TMyGridBase   :   public   TCustomGrid   {      public:      __property   Row;   };   class   TMyGrid   :   public   TCustomDBGrid   {     public:     __property   DataLink;   };   TMyGrid *MyGrid = (TMyGrid*)DBGrid1;   TMyGridBase *MyGridBase = (TMyGridBase*)DBGrid1;   TDBGrid *Grid = (TDBGrid*)Sender;   if(MyGrid->DataLink->ActiveRecord == MyGridBase->Row-1)   {    //当前行      Grid->Canvas->Font->Color = clRed;     Grid->Canvas->Brush->Color = clBlue;   }   else   {      Grid->Canvas->Font->Color = clBlack;      Grid->Canvas->Brush->Color = clWhite;   }   DBGrid1->DefaultDrawColumnCell(Rect,DataCol,Column,State);}
[解决办法]
探讨
原来是这样判断啊,为什么你改过之前标题栏的外观也不一样的,原来我的像是WIN98的那种,你改完之后像是XP的.

[解决办法]
探讨
如果要离线这一行整行显示红色的背景色那要怎么办,现在只有这一个单元格是红色的.

读书人网 >C++ Builder

热点推荐