[VB.NET]ツリービューまたはツリーノードにリーフノードを取得

[VB.NET]ツリービューまたはツリーノードにリーフノードを取得


リーフノードのTreeViewコントロールまたはTreeNodeのダウンを取得するには、我々は最初のノードのすべてを見つけることができ、Nodes.Countノード0を迎えに行きます。


        Return (From tn In GetAllNodes(treeOrNode) Where tn.Nodes.Count = 0 Select tn).ToArray
    End Function

    Private Function GetAllNodes(ByVal treeOrNode As Object) As TreeNode()
        If Not TypeOf treeOrNode Is TreeNode AndAlso Not TypeOf treeOrNode Is TreeView Then
            Throw New ArgumentException("Error param type!!")
        End If

        Dim nodes As New List(Of TreeNode)
        If TypeOf treeOrNode Is TreeNode Then
            nodes.Add(treeOrNode)
        End If
        For Each tn As TreeNode In treeOrNode.Nodes
            nodes.AddRange(GetAllNodes(tn))
        Next
        Return nodes.ToArray
    End Function

缶にパラメータとしてツリービューまたはツリーノードの使用は、また、拡張メソッドに編成することができます。



Public Module TreeViewExtension

#Region "Private Method"
    Private Function GetAllTreeNodes(ByVal treeOrNode As Object) As TreeNode()
        If Not TypeOf treeOrNode Is TreeNode AndAlso Not TypeOf treeOrNode Is TreeView Then
            Throw New ArgumentException("Error param type!!")
        End If

        Dim nodes As New List(Of TreeNode)
        If TypeOf treeOrNode Is TreeNode Then
            nodes.Add(treeOrNode)
        End If
        For Each tn As TreeNode In treeOrNode.Nodes
            nodes.AddRange(GetAllTreeNodes(tn))
        Next
        Return nodes.ToArray
    End Function

    Private Function GetAllLeafTreeNodes(ByVal treeOrNode As Object) As TreeNode()
        Return (From tn In GetAllTreeNodes(treeOrNode) Where tn.Nodes.Count = 0 Select tn).ToArray
    End Function
#End Region


#Region "Public Method"
    
  
  
   
    _
    Public Function GetAllLeafNodes(ByVal tree As TreeView) As TreeNode()
        Return GetAllLeafTreeNodes(tree)
    End Function

    
   
   
    
     _
    Public Function GetAllLeafNodes(ByVal node As TreeNode) As TreeNode()
        Return GetAllLeafTreeNodes(node)
    End Function 
#End Region

End Module
   
   
  
  

オリジナル:大列  [VB.NET]はTreeViewコントロールまたはTreeNodeの中でリーフノードを作りました


おすすめ

転載: www.cnblogs.com/chinatrump/p/11505530.html