增加子原来的代码是:
Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
If trv.SelectedNode IsNot Nothing Then
Dim pd As WinForm.TreeNode = trv.SelectedNode
Dim Index As Integer = 1
If pd.Nodes.count > 1 Then
Index = cint(pd.Nodes(pd.nodes.count - 1).name) + 1
End If
Dim nd As WinForm.TreeNode = pd.Nodes.Add(index,"新节点")
trv.SelectedNode = nd
trv.Select
trv.BeginEdit
End If
代码改为:
Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
If trv.SelectedNode IsNot Nothing Then
Dim pd As WinForm.TreeNode = trv.SelectedNode
Dim Index As Integer = 1
If pd.Nodes.count >1 Then
Index = cint(pd.Nodes(pd.nodes.count - 1).name) + 1
End If
messagebox.show(Index)
Dim nd As WinForm.TreeNode = pd.Nodes.Add(index,"新节点")
trv.SelectedNode = nd
trv.Select
trv.BeginEdit
End If
发现增加头两个节点,index都是1,第三次才开始变为2,说明第二次增加的时候下面的代码没有执行:
If pd.Nodes.count >1 Then
Index = cint(pd.Nodes(pd.nodes.count - 1).name) + 1
End If
原因很清楚,第一次执行的时候pd.Nodes.count为0,第二次执行的时候pd.Nodes.count为1,不满足上面的条件判断语句。
所以只需将代码改为:
Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
If trv.SelectedNode IsNot Nothing Then
Dim pd As WinForm.TreeNode = trv.SelectedNode
Dim Index As Integer = 1
If pd.Nodes.count >= 1 Then
Index = cint(pd.Nodes(pd.nodes.count - 1).name) + 1
End If
Dim nd As WinForm.TreeNode = pd.Nodes.Add(index,"新节点")
trv.SelectedNode = nd
trv.Select
trv.BeginEdit
End If
就加一个等于号,一切就正常的了,同样增加根有类似的问题,一样加个等于号:
Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
Dim Index As Integer = 1
If trv.Nodes.count >= 1 Then
Index = cint(trv.Nodes(trv.nodes.count - 1).name) + 1
End If
Dim nd As WinForm.TreeNode = trv.Nodes.Add(index,"新节点")
trv.SelectedNode = nd
trv.Select
trv.BeginEdit