TreeView节点设置颜色

pekingshrimp 2011-04-18 10:07:51
假设在Treeview中有5个节点,每个节点都有一个颜色定义值,现在想按照给定颜色值给现应的节点设置相应的颜色,应该怎么做?

根目录
A(红)
B(黄)
C(蓝)
D(绿)
E(黑)


谢谢。
...全文
451 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
周药师 2011-04-19
  • 打赏
  • 举报
回复
你的cur_color没有去定到某一点
要这样的去设置:
if(Node->Text =="A")
TreeView1->Canvas->Font->Color=clRed;
pekingshrimp 2011-04-19
  • 打赏
  • 举报
回复
void __fastcall Tmain_form::tree_listCustomDrawItem(TCustomTreeView *Sender,
TTreeNode *Node, TCustomDrawState State, bool &DefaultDraw)

{
if(cur_color==0)
{
data_list_sele->Canvas->Font->Color=clBlack;
}
if(cur_color==1)
{
data_list_sele->Canvas->Font->Color=clRed;
}
if(cur_color==2)
{
data_list_sele->Canvas->Font->Color=clSkyBlue;
}
if(cur_color==3)
{
data_list_sele->Canvas->Font->Color=clLime;
}

}
pekingshrimp 2011-04-19
  • 打赏
  • 举报
回复
我现在就是在TreeView1CustomDrawItem按照标志值进行设置,可是实际运行时,所有节点的颜色均为最后一个标志值的颜色,这是为什么呢?
周药师 2011-04-19
  • 打赏
  • 举报
回复
你查询出你的标志,然后 在TreeView1CustomDrawItem事件里去设置对应颜色
pekingshrimp 2011-04-19
  • 打赏
  • 举报
回复
感谢周药师:

我的TreeView节点的内容是从数据库用递归来添加的,每条记录都有一个颜色标志,不知道这个怎么实现?谢谢。
周药师 2011-04-19
  • 打赏
  • 举报
回复
如果是要改变选择节点的颜色的话

void __fastcall TForm1::TreeView1CustomDrawItem(TCustomTreeView *Sender,
TTreeNode *Node, TCustomDrawState State, bool &DefaultDraw)
{
if(Node->Selected==true)
{
Sender->Canvas->Brush->Color = clLime;
Sender->Canvas->Font->Color=clRed;
}
}
周药师 2011-04-19
  • 打赏
  • 举报
回复

//在TreeView里添加A、D的节点
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
int Mode ;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
Mode= 0 ;
}
//---------------------------------------------------------------------------



void __fastcall TForm1::TreeView1CustomDrawItem(TCustomTreeView *Sender,
TTreeNode *Node, TCustomDrawState State, bool &DefaultDraw)
{
if(Mode==1)
{
if(Node->Text =="A")
TreeView1->Canvas->Font->Color=clRed;
if(Node->Text =="D")
TreeView1->Canvas->Font->Color=clLime;
}
}
//---------------------------------------------------------------------------
//单击此按钮,A节点变红色,D节点变成绿色
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Mode =1 ;
TreeView1->Refresh() ;
}
//---------------------------------------------------------------------------
//还原
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Mode =0;
TreeView1->Refresh() ;
}
//---------------------------------------------------------------------------

13,825

社区成员

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

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