首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

如何动态设置stringgrid单元格的颜色。

2012-04-07 
怎么动态设置stringgrid单元格的颜色。。。比如在第i行,根据cells[1][i] 的值 判断一个标志sign的值:为1或为0

怎么动态设置stringgrid单元格的颜色。。。
比如在第i行,根据cells[1][i] 的值 判断一个标志sign的值:为1或为0;若sign == 1 时,将第i行改变一下颜色:RGB(,,)  
这样需要如何实现,能不能调用一下drawcell事件,怎么调用呢? 如果是什么重绘这东西的话该如何重绘??
这个过程搞不太懂,求代码参考

[解决办法]
你在就OnDrawCell事件中处理就行了,当格子需要重绘时,会自动调用这个事件,如:

C/C++ code
void __fastcall TForm1::StringGrid1DrawCell(TObject *Sender, int ACol,      int ARow, TRect &Rect, TGridDrawState State){    TStringGrid *sg = dynamic_cast <TStringGrid *>(Sender);    if (!sg) return;    if (ACol == 1 && SameText(sg->Cells[1][ARow], "1"))        sg->Canvas->Brush->Color = clRed;    else        sg->Canvas->Brush->Color = clWhite;    sg->Canvas->FillRect(Rect);    if (State.Contains(gdFocused))        sg->Canvas->Font->Color = clBlue;    sg->Canvas->TextOutA(Rect.Left + 2, Rect.Top + 2, sg->Cells[ACol][ARow]);}
[解决办法]
刚好以前写过一个
http://blog.csdn.net/qq752923276/article/details/6436717

热点排行