vb.net - 如何获取Treeview的最后一个节点?

标签 vb.net treeview treenode axwindowsmediaplayer

所以......我有一个基本上代表播放列表的 TreeView ,我想获取最后一级(歌曲)的节点以获取它们的文本并能够按照歌曲在 TreeView 中出现的顺序为 AxWindowsMediaPlayer 创建播放列表, TreeView 具有类别,例如按年份、按专辑、按艺术家,歌曲将始终位于最后一个级别,尽管最后一个级别不会始终相同。我怎样才能获得最后一级节点?谢谢。

  -- 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

输出到立即窗口:

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

关于vb.net - 如何获取Treeview的最后一个节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29057319/

相关文章:

MySQL密码安全

mysql - 如何在格式为 MM/dd/yy 的日期上使用 MYSQL

.net - Winforms:有没有办法在 TreeView 中的图像和复选框之间放置一些空间?

c# - 如何更改 WinForms Treeview 控件中用于内联编辑节点文本的字体?

java - 从给定的子节点获取父节点

java - 无法理解 TreeNode 中的 Big-O

.net - 使用鼠标在图片框图像上绘图 vb.net

regex - 使用正则表达式 VB NET 匹配和替换字符串中的第一个和最后一个字符和子字符串

wpf - 使用 MVVM ViewModel 将 XDocument 显示为 WPF TreeView

python - 从嵌套字典创建 tkinter 嵌套 TreeView