如何获取 Treeview 的最后一个节点?
How to get the last nodes of a Treeview?
所以...我有一个基本上代表播放列表的树视图,我想获得最后一级(歌曲)的 nodes
以获得他们的 text
并且能够按照歌曲在 treeview
中出现的顺序为 AxWindowsMediaPlayer
创建一个播放列表,树视图有类别,例如,按年份、按专辑、按艺术家,歌曲将始终在最后一级,尽管最后一个级别不会总是相同的。我怎样才能得到最后一级节点?谢谢。
-- Artist
--> ALbum
--> Song1
--> Song2
--> Song3
--> album2
--> Song1
--> Song2
-- Artist2
--> ALbum1
--> Song1
您可以通过设置 name / key.
使节点可搜索
' key text
albumNode.Nodes.Add("Song", "Name of song 1")
albumNode.Nodes.Add("Song", "Name of song 2")
albumNode.Nodes.Add("Song", "Name of song 3")
查找键为"Song"的所有节点:
Dim songNodes As TreeNode() = myTreeView.Nodes.Find("Song", searchAllChildren:=True)
这是一个例子:
Using view As New TreeView
For i As Integer = 1 To 2
'Add a new artist node with the key "Artist"
With view.Nodes.Add("Artist", String.Format("Artist {0}", i))
Debug.WriteLine(.Text)
For j As Integer = 1 To 2
'Add a new album node with the key "Album"
With .Nodes.Add("Album", String.Format("Album {0}-{1}", i, j))
Debug.WriteLine(" " & .Text)
For k As Integer = 1 To 3
'Add a new song node with the key "Song"
With .Nodes.Add("Song", String.Format("Song {0}-{1}-{2}", i, j, k))
Debug.WriteLine(" " & .Text)
End With
Next
End With
Next
End With
Next
Debug.WriteLine("")
Debug.WriteLine("Nodes with ""Song"" key:")
Debug.WriteLine("")
For Each node As TreeNode In view.Nodes.Find("Song", searchAllChildren:=True)
Debug.WriteLine(node.Text)
Next
End Using
立即输出Window:
Artist 1
Album 1-1
Song 1-1-1
Song 1-1-2
Song 1-1-3
Album 1-2
Song 1-2-1
Song 1-2-2
Song 1-2-3
Artist 2
Album 2-1
Song 2-1-1
Song 2-1-2
Song 2-1-3
Album 2-2
Song 2-2-1
Song 2-2-2
Song 2-2-3
Nodes with "Song" key:
Song 1-1-1
Song 1-1-2
Song 1-1-3
Song 1-2-1
Song 1-2-2
Song 1-2-3
Song 2-1-1
Song 2-1-2
Song 2-1-3
Song 2-2-1
Song 2-2-2
Song 2-2-3
所以...我有一个基本上代表播放列表的树视图,我想获得最后一级(歌曲)的 nodes
以获得他们的 text
并且能够按照歌曲在 treeview
中出现的顺序为 AxWindowsMediaPlayer
创建一个播放列表,树视图有类别,例如,按年份、按专辑、按艺术家,歌曲将始终在最后一级,尽管最后一个级别不会总是相同的。我怎样才能得到最后一级节点?谢谢。
-- Artist
--> ALbum
--> Song1
--> Song2
--> Song3
--> album2
--> Song1
--> Song2
-- Artist2
--> ALbum1
--> Song1
您可以通过设置 name / key.
使节点可搜索' key text
albumNode.Nodes.Add("Song", "Name of song 1")
albumNode.Nodes.Add("Song", "Name of song 2")
albumNode.Nodes.Add("Song", "Name of song 3")
查找键为"Song"的所有节点:
Dim songNodes As TreeNode() = myTreeView.Nodes.Find("Song", searchAllChildren:=True)
这是一个例子:
Using view As New TreeView
For i As Integer = 1 To 2
'Add a new artist node with the key "Artist"
With view.Nodes.Add("Artist", String.Format("Artist {0}", i))
Debug.WriteLine(.Text)
For j As Integer = 1 To 2
'Add a new album node with the key "Album"
With .Nodes.Add("Album", String.Format("Album {0}-{1}", i, j))
Debug.WriteLine(" " & .Text)
For k As Integer = 1 To 3
'Add a new song node with the key "Song"
With .Nodes.Add("Song", String.Format("Song {0}-{1}-{2}", i, j, k))
Debug.WriteLine(" " & .Text)
End With
Next
End With
Next
End With
Next
Debug.WriteLine("")
Debug.WriteLine("Nodes with ""Song"" key:")
Debug.WriteLine("")
For Each node As TreeNode In view.Nodes.Find("Song", searchAllChildren:=True)
Debug.WriteLine(node.Text)
Next
End Using
立即输出Window:
Artist 1 Album 1-1 Song 1-1-1 Song 1-1-2 Song 1-1-3 Album 1-2 Song 1-2-1 Song 1-2-2 Song 1-2-3 Artist 2 Album 2-1 Song 2-1-1 Song 2-1-2 Song 2-1-3 Album 2-2 Song 2-2-1 Song 2-2-2 Song 2-2-3 Nodes with "Song" key: Song 1-1-1 Song 1-1-2 Song 1-1-3 Song 1-2-1 Song 1-2-2 Song 1-2-3 Song 2-1-1 Song 2-1-2 Song 2-1-3 Song 2-2-1 Song 2-2-2 Song 2-2-3