我有一個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