求解一个treeview节点按级相加的问题
treeview1 如下:¦--生物
¦--植物
¦--柳树 6
¦--向日葵 20
¦--动物
¦--哺乳动物
¦--猩猩 5
¦--大象 8
¦--两栖动物
¦--青蛙 30
¦--鳄鱼 7
¦--微生物
¦--幽门杆菌 200
要将其各子级值相加放到上一级后面,要求得出结果如下
¦--生物 276
¦--植物 26
¦--柳树 6
¦--向日葵 20
¦--动物 50
¦--哺乳动物 13
¦--猩猩 5
¦--大象 8
¦--两栖动物 37
¦--青蛙 30
¦--鳄鱼 7
¦--微生物 200
¦--幽门杆菌 200
请热心的朋友给出简单的实现代码,谢谢!
--------------------编程问答-------------------- 迭代,多几次而已, --------------------编程问答-------------------- 用递归。判断一个节点是否有字节点,并遍历所有的子节点。
以前写过一个类似的,明天找到代码贴上来 --------------------编程问答-------------------- 谢谢楼上的wangfeng12345678朋友,明天等你贴代码^-^ --------------------编程问答--------------------
--------------------编程问答--------------------
'假设各node与其值间以符合 - 分隔
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
MsgBox(GetSubNodesValue(Me.TreeView1.SelectedNode))
End Sub
Private Function GetSubNodesValue(ByVal node As TreeNode) As Integer
If node.Nodes.Count > 0 Then
Dim value As Integer
For Each n As TreeNode In node.Nodes
value += GetSubNodesValue(n)
Next
If node.Text.Contains("-") Then
node.Text = node.Text.Split("-")(0) + "-" + value.ToString
Else
node.Text = node.Text + "-" + value.ToString
End If
Return value
Else
Return node.Text.Split("-")(1)
End If
End Function
End Class
--------------------编程问答-------------------- 递归 遍历子节点 求和
'以上代码中Button_Click代码改为
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
GetSubNodesValue(Me.TreeView1.Nodes(0))
End Sub
'测试添加一个新的子节点
Private Sub btnTest_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnTest.Click
Me.TreeView1.Nodes(0).Nodes(1).Nodes(0).Nodes.Add("Test-10")
GetSubNodesValue(Me.TreeView1.Nodes(0))
End Sub
补充:.NET技术 , VB.NET