如何使StringGrid中某个单元格中的字体成蓝色?

Greg_han 2008-09-02 04:53:38
如题...
比如: StringGrid1->Cells[6][1]="你好";
使得:"你好" 字符串 成蓝色?
...全文
150 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
fangsp 2008-09-08
  • 打赏
  • 举报
回复

在StringGrid的OnDrawCell里写:
if(ACol==6&&ARow==1)
StringGrid1->Font->Color=clRed;
else
StringGrid1->Font->Color=clBlack;
yhec 2008-09-07
  • 打赏
  • 举报
回复
学习!
iverson1982 2008-09-05
  • 打赏
  • 举报
回复
闪烁的问题可以设置StringGrid->DoubleBuffered=true;来解决
Greg_han 2008-09-03
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 iverson1982 的回复:]
似乎OnDrawCell是在这个cell画过后才触发的?我刚才试了下我的代码,if(ACol==6&&ARow==1)这样写会使StringGrid1->Cells[7][1]的颜色变掉,或者OnDrawCell里的acol是从0开始的,不包含最左边的灰色的那栏。要使StringGrid1->Cells[6][1]变颜色,要改成if(ACol==5&&ARow==1)...

或者重画这个cell
if(ACol==6&&ARow==1)
{ StringGrid1->Canvas->FillRect(Rect);
StringGrid1->Canvas->Font->Color=clBlu…
[/Quote]


太好了!!!
真感谢你!!!!!!!!!!!!
Greg_han 2008-09-03
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 iverson1982 的回复:]
在StringGrid的OnDrawCell里写:
if(ACol==6&&ARow==1)
StringGrid1->Font->Color=clRed;
else
StringGrid1->Font->Color=clBlack;
[/Quote]


谢谢你!!!!!
怎么显示的时候 是在一直 刷新 ?
闪烁得眼都花了?



iverson1982 2008-09-02
  • 打赏
  • 举报
回复
似乎OnDrawCell是在这个cell画过后才触发的?我刚才试了下我的代码,if(ACol==6&&ARow==1)这样写会使StringGrid1->Cells[7][1]的颜色变掉,或者OnDrawCell里的acol是从0开始的,不包含最左边的灰色的那栏。要使StringGrid1->Cells[6][1]变颜色,要改成if(ACol==5&&ARow==1)...

或者重画这个cell
if(ACol==6&&ARow==1)
{ StringGrid1->Canvas->FillRect(Rect);
StringGrid1->Canvas->Font->Color=clBlue;
DrawText(StringGrid1->Canvas->Handle,
StringGrid1->Cells[6][1].c_str(),-1,
(RECT*)&Rect,DT_SINGLELINE);
}
drawtext最后一个参数修改字的位置。

如果要判断光标是不是点了这个cell再改颜色,就比较下StringGrid1->Selection和OnDrawCell里的Rect是不是一样就可以了。
fangsp 2008-09-02
  • 打赏
  • 举报
回复

在StringGrid的OnDrawCell里写:
if(ACol==6&&ARow==1)
StringGrid1->Font->Color=clRed;
else
StringGrid1->Font->Color=clBlack;


光标进去你可以加一个判断就行了
if StringGrid1->Focused
{
}

这样就能解决你的问题 了
hansyswin 2008-09-02
  • 打赏
  • 举报
回复
是否可以在光标进去后,单元格的颜色改变?谢谢。
iverson1982 2008-09-02
  • 打赏
  • 举报
回复
StringGrid1->Font->Color=clBlue; //clRed
iverson1982 2008-09-02
  • 打赏
  • 举报
回复
在StringGrid的OnDrawCell里写:
if(ACol==6&&ARow==1)
StringGrid1->Font->Color=clRed;
else
StringGrid1->Font->Color=clBlack;

13,824

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧