以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  目录树添加节点报错  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=116673)

--  作者:deliangzhaoe
--  发布时间:2018/3/29 10:40:00
--  目录树添加节点报错
目录树在手动添加第二层、第三层节点的时候报错:

图片点击可在新窗口打开查看此主题相关图片如下:qq截图20180329103528.jpg
图片点击可在新窗口打开查看
代码如下:

图片点击可在新窗口打开查看此主题相关图片如下:qq截图20180329103843.jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:qq截图20180329103858.jpg
图片点击可在新窗口打开查看

请问,是哪里错了,怎么改?谢谢!

原来的时候最多四层结构,不报错,今天又加上了两层,报错
[此贴子已经被作者于2018/3/29 10:41:43编辑过]

--  作者:有点甜
--  发布时间:2018/3/29 10:45:00
--  

没必要这样处理,如果要得到各个节点的值,参考这种做法(FullPath),如

 

Dim Value() As String
Value = nd.FullPath.Split("\\")

msgbox(value.length)

msgbox(value(0))

msgbox(value(1))

 

 


--  作者:deliangzhaoe
--  发布时间:2018/3/29 10:53:00
--  
你们是专业的,我不是专业的,您还是指点我在原代码上改一下吧

Dim tr As WinForm.TreeView
tr = e.Form.Controls("TreeView2")
Dim nd As WinForm.TreeNode
nd = tr.SelectedNode
Dim pd As WinForm.TreeNode
pd = nd.ParentNode
Dim sd As winform.treenode
sd = pd.ParentNode
Dim wd As WinForm.TreeNode
wd = sd.ParentNode
If nd IsNot Nothing Then
    If nd.Level = 5 Then
        MessageBox.Show("最多允许六层结构!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    Else
        Dim dr As DataRow = DataTables("组织机构和职责").AddNew
        If nd.Level = 0 Then
            dr("企业名称") = nd.Text
            dr("部门设置") = "新节点"
        ElseIf nd.Level = 1
            dr("企业名称") = pd.Text
            dr("部门设置") = nd.text
            dr("岗位设置") = "新节点"
        ElseIf nd.Level = 2
            dr("企业名称") = sd.Text
            dr("部门设置") = pd.Text
            dr("岗位设置") = nd.text
            dr("第四层机构设置") = "新节点"
        ElseIf nd.Level = 3
            dr("企业名称") = wd.Text
            dr("部门设置") = sd.Text
            dr("岗位设置") = pd.Text
            dr("第四层机构设置") = nd.text
            dr("第五层机构设置") = "新节点"
        ElseIf nd.Level = 4
            dr("企业名称") = wd.ParentNode.Text
            dr("部门设置") = wd.Text
            dr("岗位设置") = sd.Text
            dr("第四层机构设置") = pd.Text
            dr("第五层机构设置") = nd.text
            dr("第六层机构设置") = "新节点"
        End If
        nd = nd.Nodes.Add("新节点")
        tr.SelectedNode = nd
        tr.Select()
        tr.BeginEdit()
    End If
End If


谢谢了!

--  作者:有点甜
--  发布时间:2018/3/29 10:57:00
--  
Dim tr As WinForm.TreeView
tr = e.Form.Controls("TreeView2")
Dim nd As WinForm.TreeNode
nd = tr.SelectedNode
Dim ary = nd.FullPath.Split("\\")
If nd IsNot Nothing Then
    If nd.Level = 5 Then
        MessageBox.Show("最多允许六层结构!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    Else
        Dim dr As DataRow = DataTables("组织机构和职责").AddNew
        If nd.Level = 0 Then
            dr("企业名称") = ary(0)
            dr("部门设置") = "新节点"
        ElseIf nd.Level = 1
            dr("企业名称") = ary(0)
            dr("部门设置") = ary(1)
            dr("岗位设置") = "新节点"
        ElseIf nd.Level = 2
            dr("企业名称") = ary(0)
            dr("部门设置") = ary(1)
            dr("岗位设置") = ary(2)
            dr("第四层机构设置") = "新节点"
        ElseIf nd.Level = 3
            dr("企业名称") = ary(0)
            dr("部门设置") = ary(1)
            dr("岗位设置") = ary(2)
            dr("第四层机构设置") = ary(3)
            dr("第五层机构设置") = "新节点"
        ElseIf nd.Level = 4
            dr("企业名称") = ary(0)
            dr("部门设置") = ary(1)
            dr("岗位设置") = ary(2)
            dr("第四层机构设置") = ary(3)
            dr("第五层机构设置") = ary(4)
            dr("第六层机构设置") = "新节点"
        End If
        nd = nd.Nodes.Add("新节点")
        tr.SelectedNode = nd
        tr.Select()
        tr.BeginEdit()
    End If
End If

--  作者:deliangzhaoe
--  发布时间:2018/4/6 20:37:00
--  
谢谢老师了