搜索
aardio官方社区 门户 查看主题

目录树中句柄传递遇到问题

发布者: jkx01whg | 发布时间: 2017-11-30 10:36| 查看数: 357| 评论数: 1|帖子模式

我只是想逐一遍历“每一棵子树”,为了避免各子节点有重名,产生混淆,each()函数用的不妥的地方请多多批评指正。
winform.button.oncommand = function(id,event){        
                //无返回值则继续调用默认回调函数
        //var hItem = winform.treeview.hitTest();
        var hItem01=winform.treeview.getRoot();//                句柄在第一层
        winform.msgbox(tostring(winform.treeview.getItemText(hItem01)));
        
        for hChild01 in winform.treeview.each(hItem01){
                winform.msgbox(tostring(winform.treeview.getItemText(hChild01)));
               
                var hItem02 =winform.treeview.getChildItem(hChild01);//句柄在第二层。到这里为什么我的句柄会传递到第三层去。        
                for hChild02 in winform.treeview.each(hItem02){
                        winform.msgbox(tostring(winform.treeview.getItemText(hChild02)));
                        
                        var hItem03 =winform.treeview.getChildItem(hChild02);//句柄在第三层
                        for hChild03 in winform.treeview.each(hItem03){
                                winform.msgbox(tostring(winform.treeview.getItemText(hChild02)));
                        }
                        //句柄移动至同层兄弟目录
                        //var hChild02 =winform.treeview.getNextSibling (hChild02);
                }
                //句柄移动至同层兄弟目录
                //var hChild02 =winform.treeview.getNextSibling (hChild02);为什么有这一句也不能把句柄传递给同层兄弟
        }
}

最新评论

jkx01whg 发表于 2017-11-30 16:51:18
本帖最后由 jkx01whg 于 2017-11-30 16:53 编辑

自己结帖。自己的代码真的写得很乱。有点丢人。
//统计子目录个数,返回当前句柄下,儿子个数      
function ChildCount(hItem){
    var i=0;
        for hChild in winform.treeview.each(hItem){
                i=i+1;
        }
        return i;   
}        
winform.button.oncommand = function(id,event){       
                //无返回值则继续调用默认回调函数
        //var hItem = winform.treeview.hitTest();
        var hItem=winform.treeview.getRoot();//                句柄在第一层
       
        if(ChildCount(hItem)>0){
                var hItem01 =winform.treeview.getChildItem(hItem);//句柄在第二层
                for(i=1;ChildCount(hItem);1){
                        winform.msgbox(tostring(winform.treeview.getItemText(hItem01)));                       
                                if(ChildCount(hItem01)>0){
                                        var hItem02 =winform.treeview.getChildItem(hItem01);//句柄在第三层
                                        for(i=1;ChildCount(hItem01);1){
                                                winform.msgbox(tostring(winform.treeview.getItemText(hItem02)));                                               
                                                if(ChildCount(hItem02)>0){
                                                        var hItem03 =winform.treeview.getChildItem(hItem02);//句柄在第四层
                                                        for(i=1;ChildCount(hItem02);1){
                                                                winform.msgbox(tostring(winform.treeview.getItemText(hItem03)));
                                                                hItem03=winform.treeview.getNextSibling(hItem03);
                                                        }
                                                }
                                                hItem02=winform.treeview.getNextSibling(hItem02);
                                        }
                                }
                        hItem01=winform.treeview.getNextSibling(hItem01);
                }
        }
}

手机版|未经许可严禁引用或转载本站文章|站长邮箱|aardio.com|aardio官方社区 ( 皖ICP备09012014号 )

GMT+8, 2018-5-28 15:37 , Processed in 0.062500 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表