
如上图所示:默认,sky,sea节点下各有一篇文章,现在想实现:让每个节点显示所包含文章的总数,也就是默认(3),sky(2),sea(1),sea下面可能还有无限级的节点,如果它们也含有文章,也要统计到父节点中去,请问怎么统计并更改 (文章数目根据括号中的数值来算即可,每个节点自身的文章数我已经算好了)
简单来说就是:怎么把子节点括号中的数字,累计到父节点中
------解决方案--------------------
两个类各复制到它自己的位置就行了。
' 这个类复制到类模块内的
Public Class Class1
Private List1 As New List(Of Integer)
Private NextKey1 As Integer = 0
Private TreeView1 As TreeView
Public Property _TreeView1() As TreeView
Get
Return TreeView1
End Get
Set(ByVal value As TreeView)
TreeView1 = value
End Set
End Property
Public Sub MySub()
Dim Sum1 As Integer = List1.Sum
' TreeView1.Nodes
ReadAllNode(TreeView1.Nodes)
End Sub
Private Sub ReadAllNode(ByVal Nodes1 As TreeNodeCollection)
Dim Val1 As Integer
Dim Str1 As String
Dim Str2 As String
Dim Str3 As String
For Each S As TreeNode In Nodes1
Str2 = S.Text
Str3 = S.FullPath
If S.Nodes.Count > 0 Then
ReadAllNode(S.Nodes)
End If
If String.Equals(Str2, Str3) Then
Str1 = Str2.Split("(").ElementAt(0)
TreeView1.Nodes.Item(NextKey1).Text = Str1 & "(" & List1.Sum & ")"
List1.Clear()
NextKey1 += 1
Else
Val1 = Val(Str2.Split("(").ElementAt(1))
List1.Add(Val1)
End If
Next
End Sub
End Class
'这个类是窗体的
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim Cla1 As New Class1
Cla1._TreeView1 = Me.TreeView1
Cla1.MySub()
End Sub
End Class
------解决方案--------------------
此类的头部要加上
import System.Linq