网上传很开的将索引装入TreeView的三种方法相關問題.
网上传很开的将目录装入TreeView的三种方法相關問題...
http://www.shangxueba.com/jingyan/86198.html
这是网上传很开的将目录结构装入TreeView控件的三种方法
当然第三种方法很好用,不过实际运行,每当点回上一层父节点时,又会自动添加子节点一次..
点根目录[ROOT]就全部第二层子节点都自动添加一次
这该怎么处理阿!流传到现在好几年头了,没有人修正过
我尝试修正,清空再加入,判断底下子节点相同就不加入...都无法成功
或是有更好用的方式,不要一次全装入,怕拖慢载入速度。
请大神帮个忙吧.. 困扰我三天了 !!
------解决方案--------------------
在点击的时候判断一下,如果被点击的节点下有子节点的话就什么也不干,这样就可以了
------解决方案--------------------
就是添加一行判断:
if(TreeView1->Selected->Count>0){ // 取得选中节点下单层子节点的数量
return;
}
把上面的代码放在最前面就可以了
------解决方案--------------------
BCB的节点在点击时执行代码是要容错的,你试试:
if(
TreeView1->Items->Count<=0
------解决方案--------------------
TreeView1->SelectionCount<=0
------解决方案--------------------
TreeView1->Selected->Count>0
){
return;
}
------解决方案--------------------
这样:
void __fastcall TForm1::TreeView3Changing(TObject *Sender, TTreeNode *Node, bool &AllowChange)
{
Screen->Cursor=crHourGlass;
//Animate1->Active=true;
//防止重复增加节点
if(Node->Count==0){
TSearchRec sr;
AnsiString DirName,DirTmp;
TTreeNode * NodeTmp=Node;
DirName=Node->Text;
//得到完整的路径
for(int I=Node->Level ;I>0 ;I--){
NodeTmp=NodeTmp->Parent;
DirTmp=NodeTmp->Text;
if(DirTmp.SubString(DirTmp.Length(),1)!="\\")
http://www.shangxueba.com/jingyan/86198.html
这是网上传很开的将目录结构装入TreeView控件的三种方法
当然第三种方法很好用,不过实际运行,每当点回上一层父节点时,又会自动添加子节点一次..
点根目录[ROOT]就全部第二层子节点都自动添加一次
这该怎么处理阿!流传到现在好几年头了,没有人修正过
我尝试修正,清空再加入,判断底下子节点相同就不加入...都无法成功
或是有更好用的方式,不要一次全装入,怕拖慢载入速度。
请大神帮个忙吧.. 困扰我三天了 !!
treeview
C++ Builder
目录
节点
------解决方案--------------------
在点击的时候判断一下,如果被点击的节点下有子节点的话就什么也不干,这样就可以了
------解决方案--------------------
就是添加一行判断:
if(TreeView1->Selected->Count>0){ // 取得选中节点下单层子节点的数量
return;
}
把上面的代码放在最前面就可以了
------解决方案--------------------
BCB的节点在点击时执行代码是要容错的,你试试:
if(
TreeView1->Items->Count<=0
------解决方案--------------------
TreeView1->SelectionCount<=0
------解决方案--------------------
TreeView1->Selected->Count>0
){
return;
}
------解决方案--------------------
这样:
void __fastcall TForm1::TreeView3Changing(TObject *Sender, TTreeNode *Node, bool &AllowChange)
{
Screen->Cursor=crHourGlass;
//Animate1->Active=true;
//防止重复增加节点
if(Node->Count==0){
TSearchRec sr;
AnsiString DirName,DirTmp;
TTreeNode * NodeTmp=Node;
DirName=Node->Text;
//得到完整的路径
for(int I=Node->Level ;I>0 ;I--){
NodeTmp=NodeTmp->Parent;
DirTmp=NodeTmp->Text;
if(DirTmp.SubString(DirTmp.Length(),1)!="\\")