StringGrid中每此点击cell时,当前cell的颜色会改变,如何使其保留原来的颜色不变呢

dxhh99 2004-12-25 10:39:17
StringGrid中每此点击cell时,当前cell的颜色会改变,如何使其保留原来的颜色不变呢
...全文
192 6 打赏 收藏 举报
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
jinhaiwu 2004-12-30
点机的时候不让他重新画就没有问题,或者你按照原来的重新再画一次。
  • 打赏
  • 举报
回复
ccrun.com 2004-12-30
在StrinGrid的OnDrawCell事件中添加以下代码:

void __fastcall TForm1::StringGrid1DrawCell(TObject *Sender, int ACol,
int ARow, TRect &Rect, TGridDrawState State)
{
TStringGrid *sg = dynamic_cast<TStringGrid *>(Sender);
if(State.Contains(gdSelected))
{
sg->Canvas->Brush->Color = sg->Color;
sg->Canvas->FillRect(Rect);
sg->Canvas->Font->Color = clBlack;
sg->Canvas->TextRect(Rect, Rect.Left+2,
Rect.Top+2, sg->Cells[ACol][ARow]);
}
}
  • 打赏
  • 举报
回复
tatatata 2004-12-30
帮助文档里 有的 改一下dbgrid的属性就可疑了,不果我现在没装cb,没有办发详悉说明
  • 打赏
  • 举报
回复
Javpp 2004-12-26
我做过,不过我的方法是假的,就是用一个二维数组存了所有CELL的颜色,每点击STRINGGRID一次就把所有的CELL的颜色全部按照数组和点击的CELL设置一次,每点击到的颜色还是原来的颜色,点击到的颜色改变,同时刷新数组对应元素的值,我也是没办法才这样做的,谁有好的办法,偶学习学习!!!
  • 打赏
  • 举报
回复
dxhh99 2004-12-26
原来的每个CELL都是不同颜色的,当某个CELL变成焦点的时候,要保留原来的颜色不变。所以不能设定焦点CELL的颜色为固定的一种颜色。
  • 打赏
  • 举报
回复
dxhh99 2004-12-26
谁知道啊??
  • 打赏
  • 举报
回复
发帖
VCL组件使用和开发

593

社区成员

C++ Builder VCL组件使用和开发
社区管理员
  • VCL组件使用和开发社区
加入社区
帖子事件
创建了帖子
2004-12-25 10:39
社区公告
暂无公告