当前位置:编程学习 > C#/ASP.NET >>

求解一个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
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,