我有一个DataTable,可以有1到14列,我想。我希望创建一个TreeView,以便可以更好地对所呈现的数据进行排序。问题是,当我通过数据表循环时,它没有正确格式树。实际上,它只获取根节点和子节点,但它多次添加子节点。现在我可以蛮横地逼它工作,但这是低效的。所以如果有人能帮助我。将子节点添加到VB中的TreeView上的Childe节点
代码:(忽略.Count - 5
)
Public Sub loadTreeView()
compClass.treeView.Nodes.Clear()
Dim row As DataRow
Dim parentNode As TreeNode
Dim childNode As TreeNode
Dim count As Integer = compClass.dataTable.Columns.Count - 5
Dim test(count) As TreeNode
For Each row In compClass.dataTable.Rows
For i As Integer = 0 To count
If i = 0 Then
test(i) = searchNode(row.Item(i).ToString())
If test(i) IsNot Nothing Then
Else
test(i) = New TreeNode(row.Item(i).ToString())
compClass.treeView.Nodes.Add(test(i))
End If
'parentNode = searchNode(row.Item(0).ToString())
'If parentNode IsNot Nothing Then
'Else
' parentNode = New TreeNode(row.Item(0).ToString())
' compClass.treeView.Nodes.Add(parentNode)
'End If
Else
childNode = searchNode(row.Item(i - 1).ToString())
If childNode IsNot Nothing Then
test(i) = New TreeNode(row.Item(i).ToString())
test(i - 1).Nodes.Add(test(i))
End If
'parentNode = searchNode(row.Item(i - 1).ToString())
'If parentNode IsNot Nothing Then
' childNode = New TreeNode(row.Item(i).ToString())
' parentNode.Nodes.Add(childNode)
'End If
End If
Next
Next
End Sub
Private Function searchNode(ByVal nodeText As String)
For Each node As TreeNode In compClass.treeView.Nodes
If node.Text = nodeText Then
Return node
End If
Next
End Function
它假设看起来像表布局下的图像。 – CodeMonkey 2014-09-15 14:27:45