怎么动态设置stringgrid单元格的颜色。。。
比如在第i行,根据cells[1][i] 的值 判断一个标志sign的值:为1或为0;若sign == 1 时,将第i行改变一下颜色:RGB(,,)
这样需要如何实现,能不能调用一下drawcell事件,怎么调用呢? 如果是什么重绘这东西的话该如何重绘??
这个过程搞不太懂,求代码参考
[解决办法]
你在就OnDrawCell事件中处理就行了,当格子需要重绘时,会自动调用这个事件,如:
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