以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  目录树的选定节点打勾情况提取ID(疑问)  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=9068)

--  作者:migold
--  发布时间:2011/1/31 10:10:00
--  目录树的选定节点打勾情况提取ID(疑问)

Dim tv As WinForm.TreeView = Forms("窗口47").Controls("TreeView1") \'目录树
Dim nd,nd1,nd2 As WinForm.TreeNode \'节点
Dim mf1 As String = "" \'初始化变量,此变量用于收集选定打勾节点自身与下级下下级包括ID
If tv.SelectedNode IsNot Nothing Then \'判断选定节点不为空
    nd = tv.SelectedNode
    If nd.Checked Then \'判断选定节点打勾情况下
        mf1 = mf1 & nd.Name & ","
        For i As Integer = 0 To nd.Nodes.Count -1 \'循环下1级打勾情况下
            If nd.Nodes(i).Checked Then
                mf1 = mf1 & nd.Nodes(i).Name & ","
                nd1 = nd.Nodes(i)
                For i1 As Integer = 0 To nd1.Nodes.Count -1 \'循环下2级打勾情况下
                    If nd1.Nodes(i1).Checked Then
                        mf1 = mf1 & nd1.Nodes(i1).Name & ","
                        nd2 = nd1.Nodes(i1)
                        For i2 As Integer = 0 To nd2.Nodes.Count -1 \'循环下3级打勾情况下
                            If nd2.Nodes(i2).Checked Then
                                mf1 = mf1 & nd2.Nodes(i2).Name & ","
                            End If
                        Next
                    End If
                Next
            End If
        Next
        mf1 = mf1.Trim(" ",",")
        output.show(mf1) \'目的显示结果2,31,107,110,111,112,108,109,32,33,104,105,106,34
    End If
End If

请高手们指点!!!改进改进以上代码,谢谢!

目录树的选定节点打勾情况下,提取打勾节点ID集。

以上代码,只能针对选定节点为3层情况,超过3层就无能为力了。

 

 


--  作者:狐狸爸爸
--  发布时间:2011/1/31 11:45:00
--  

好的方法是递归,不过对于一般用户来说,比较复杂。

 

来个来个笨却简单的办法:

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目66.rar


--  作者:migold
--  发布时间:2011/1/31 13:29:00
--  
谢谢!试试去
--  作者:migold
--  发布时间:2011/1/31 13:41:00
--  

狐狸爸爸!

试过你的方法,不行,麻烦来个你所说的递归


--  作者:狐狸爸爸
--  发布时间:2011/1/31 15:17:00
--  

我测试我的文件可以啊。

注意有多个三个位置了代码,你用输出代码看看我的文件是如何设置的。


--  作者:migold
--  发布时间:2011/1/31 16:23:00
--  

看过了,我在看看试试