1

フォームにツリービューを追加しました。チェックされているかどうかに関係なく、チェックボックスの値を取得したいと思います。

また、ノードの数を取得しようとしています。ツリーには4つのノードがあります。

Dim nodes As TreeNodeCollection = TreeView1.Nodes
    MsgBox(nodes.Count)

1を与えます。

ありがとう

4

1 に答える 1

1

...これはおそらくこれを行うための最良の方法ではありませんが、機能します...

関数は次のようになります。

Function GetAllCheckedNodes(ByVal tv As TreeView, Optional ByRef tn As TreeNode = Nothing) As List(Of TreeNode)
    Dim RetVal As New List(Of TreeNode)


    If tn Is Nothing Then
        For Each nd In tv.Nodes
            RetVal.AddRange(GetAllCheckedNodes(tv, nd))
        Next
    Else

        If tn.Checked Then RetVal.Add(tn)

        For Each nd In tn.Nodes
            RetVal.AddRange(GetAllCheckedNodes(tv, nd))
        Next
    End If

    Return RetVal
End Function

そして、それを使用するコードは次のようになります。

    Dim MyList As List(Of TreeNode) = GetAllCheckedNodes(tvAccounts)

また

    Dim MyList As List(Of TreeNode) = GetAllCheckedNodes(tvAccounts, nd)

ndチェックされているすべての子ノードを取得するツリービュー内の特定のノードはどこにありますか。

これが役に立ち、理にかなっていることを願っています。

于 2013-01-07T17:21:33.513 に答える