2

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

  -- Artist
       --> ALbum
           --> Song1
           --> Song2
           --> Song3
       --> album2
           --> Song1
           --> Song2
  -- Artist2
       --> ALbum1
           --> Song1
4

1 回答 1

2

您可以通过设置节点名称/键使节点可搜索。

'                    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

输出到即时窗口:

艺术家 1
    专辑 1-1
        歌曲 1-1-1
        歌曲 1-1-2
        歌曲 1-1-3
    专辑 1-2
        歌曲 1-2-1
        歌曲 1-2-2
        歌曲 1-2-3
艺术家 2
    专辑 2-1
        歌曲 2-1-1
        歌曲 2-1-2
        歌曲 2-1-3
    专辑 2-2
        歌曲 2-2-1
        歌曲 2-2-2
        歌曲 2-2-3

带有“Song”键的节点:

歌曲 1-1-1
歌曲 1-1-2
歌曲 1-1-3
歌曲 1-2-1
歌曲 1-2-2
歌曲 1-2-3
歌曲 2-1-1
歌曲 2-1-2
歌曲 2-1-3
歌曲 2-2-1
歌曲 2-2-2
歌曲 2-2-3
于 2015-03-15T09:57:12.667 回答