BCB TreeView & ListView 互动关联有关问题
BCB TreeView & ListView 互动关联问题
我想用C++ Builder弄一个似档案总管这样的方式,点TreeView的父、子节点,ListView就会显示其资料。
我想点"a",ListView就显示"He",点"aa"就显示"she",点"b",ListView就出现"It" ..
但不管我怎么用,"He""She""It"都会一起出现阿!!!!!
挺头疼的阿 ..
上代码:
------解决方案--------------------
switch(node->Level==0)
这种写法。node->Level==0 是一个布尔比较式,返回true 或者 false , 转换为整数则为:false 为 0 ,true为非0值,一般为-1.但不一定
判断节点深度的写法是:
switch(node->Level)
{
case 0 : break ;
case 1 : break ;
case 2 : break ;
default: break ;
}
依你上面的写法,可以用 if(node->Level==0) ....
我想用C++ Builder弄一个似档案总管这样的方式,点TreeView的父、子节点,ListView就会显示其资料。
我想点"a",ListView就显示"He",点"aa"就显示"she",点"b",ListView就出现"It" ..
但不管我怎么用,"He""She""It"都会一起出现阿!!!!!
挺头疼的阿 ..
上代码:
void __fastcall TForm1::FormCreate(TObject *Sender)
{
TTreeNode* node;
TTreeNode* Nextnode;
TreeView1->Items->Clear();
TreeView1->Items->Add(NULL,"Computer");
node=TreeView1->Items->Item[0];
TreeView1->Items->AddChild(node,"a" );
node=TreeView1->Items->Item[1];
Nextnode=node->getNextSibling();
TreeView1->Items->AddChild(node,"aa" );
Nextnode=TreeView1->Items->Item[1]->GetLastChild();
TreeView1->Items->Add(node,"b");
Nextnode=TreeView1->Items->Item[0]->GetLastChild();
TreeView1->Items->AddChild(Nextnode,"bb" );
TreeView1->Items->AddChild(Nextnode,"bbb" );
}
//--------------------------------------------------------
void __fastcall TForm1::TreeView1Click(TObject *Sender)
{
ListView1->Items->Clear();
Application->ProcessMessages();
Sleep(10);
TTreeNode* node;
TTreeNode* Nextnode;
node=TreeView1->Items->Item[0];
Nextnode=TreeView1->Items->Item[0]->GetLastChild();
node = TreeView1 -> Selected;
switch(node->Level==0)
{
case 0: {
TListItem *pItem=0;
pItem=ListView1->Items->Add();
pItem->Caption=String("He");
} break;
case 1:
break;
default:;
}
switch(node->Level==1)
{
case 0: {
TListItem *pItem=0;
pItem=ListView1->Items->Add();
pItem->Caption=String("She");
} break;
case 1:
break;
default:;
}
switch(node->Level==1)
{
case 0: {
TListItem *pItem=0;
pItem=ListView1->Items->Add();
pItem->Caption=String("It");
} break;
case 1:
break;
default:;
}
}
------解决方案--------------------
switch(node->Level==0)
这种写法。node->Level==0 是一个布尔比较式,返回true 或者 false , 转换为整数则为:false 为 0 ,true为非0值,一般为-1.但不一定
判断节点深度的写法是:
switch(node->Level)
{
case 0 : break ;
case 1 : break ;
case 2 : break ;
default: break ;
}
依你上面的写法,可以用 if(node->Level==0) ....