-1

次の形式の文字列のリストがあります。

apple
apple/red
apple/green
apple/green/lime
banana
banana/yellow/dotted

各文字列はノードであり、/ の後のテキストはそのノードの子です。この形式のリストをツリーノードに変換するコードを作成しようとしましたが、これについて頭を悩ませているようには見えません。正確にそれを行うためのコードを提供していただけますか?

4

2 に答える 2

1

このようなことを試してください:

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    Dim nodeData As New List(Of String)(New String() { _
        "apple", _
        "apple/red", _
        "apple/green", _
        "apple/green/lime", _
        "banana", _
        "banana/yellow/dotted"})

    Dim TN As TreeNode
    For Each nodePath As String In nodeData
        TN = Nothing
        For Each node As String In nodePath.Split("/"c)
            If IsNothing(TN) Then
                If TreeView1.Nodes.ContainsKey(node) Then
                    TN = TreeView1.Nodes(node)
                Else
                    TN = TreeView1.Nodes.Add(node, node)
                End If
            Else
                If TN.Nodes.ContainsKey(node) Then
                    TN = TN.Nodes(node)
                Else
                    TN = TN.Nodes.Add(node, node)
                End If
            End If
        Next
    Next
End Sub

パスからのツリービュー

于 2013-11-14T08:01:18.103 に答える
0

どのプログラミング言語を使用していますか?

編集:

 'assuming you have a treeview on your form,
        appleNode = TreeView.appleNode.Nodes.Add("Apple")
        bananaNode = TreeView.bananaNode.Nodes.Add("Banana")

        appleNodeChild1(0) = appleNode.Nodes.Add("Red")  ' creates Apple/Red
        appleNodeChild1(1) = appleNode.Nodes.Add("Green") ' creates Apple/Green
        appleNodeChild2(0) = appleNodeChild1(1).Nodes.Add("Lime") 'creates Apple/Green/Lime

        bananaNodeChild1(0) = bananaNode.Nodes.Add("Yellow") ' creates Banana/Yellow
        bananaNodeChild2(0) = bananaNodeChild1(0).Nodes.Add("Dotted") 'creates Banana/Yellow/Dotted
于 2013-11-14T06:50:04.473 に答える