以文本方式查看主题

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

--  作者:qianqian1530
--  发布时间:2015/3/18 10:44:00
--  目录树-节点删除
Dim tr As WinForm.TreeView = e.Form.Controls("TreeView1")
Dim
nd As WinForm.TreeNode = tr.SelectedNode
If
nd IsNot Nothing Then
    Dim
pth() As String = nd.FullPath.Split("\\")
    Select
Case nd.Level
    Case
0
       
DataTables("
A").DeleteFor("大类 = \'" & pth(0) & "\'")
    Case
1
       
DataTables("
A").DeleteFor("大类 = \'" & pth(0) & "\' And 二类 = \'" & pth(1) & "\'")
    Case
2
       
DataTables("
A").DeleteFor("大类 = \'" & pth(0) & "\' And 二类 = \'" & pth(1) & "\' And 三类 = \'" & pth(2) & "\'")
    End
Select
    nd.Delete()
End
If
tr.Select()



怎么改成, 当下一级节点存在的时候,禁止删除呢?

就是, 当二类 下面 存在三类 的时候,禁止直接删除二类.


--  作者:有点甜
--  发布时间:2015/3/18 10:46:00
--  
Case 0
    If nd.Nodes.Count = 0 Then
        DataTables("表A").DeleteFor("大类 = \'" & pth(0) & "\'")
        nd.delete
    Else
        msgbox("禁止删除")
    End If

 


--  作者:有点甜
--  发布时间:2015/3/18 10:48:00
--  

 或者

 

Dim tr As WinForm.TreeView = e.Form.Controls("TreeView1")
Dim nd As WinForm.TreeNode = tr.SelectedNode
If nd IsNot Nothing Then
    If nd.Nodes.Count = 0 Then
        Dim pth() As String = nd.FullPath.Split("\\")
        Select Case nd.Level
            Case 0
                DataTables("表A").DeleteFor("大类 = \'" & pth(0) & "\'")
            Case 1
                DataTables("表A").DeleteFor("大类 = \'" & pth(0) & "\' And 二类 = \'" & pth(1) & "\'")
            Case 2
                DataTables("表A").DeleteFor("大类 = \'" & pth(0) & "\' And 二类 = \'" & pth(1) & "\' And 三类 = \'" & pth(2) & "\'")
        End Select
       
        nd.Delete()
    Else
        msgbox("不能删除")
    End If
End If
tr.Select()


--  作者:Bin
--  发布时间:2015/3/18 10:48:00
--  
if e.node.nodes.count > 0 then
  Messagebox.SHOW("有下级不能删除")
Else
   \'删除代码
end if

--  作者:qianqian1530
--  发布时间:2015/3/18 10:57:00
--  
3Q