以下是引用狐狸爸爸在2010-12-6 15:31:00的发言:
呵呵,也怪不得你做不出来,我也感觉很难,因为要尽量避免用递归,否则就要用全局代码了。
还是一个按钮搞定:
Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
Dim lst1 As List(of String) = DataTables("表A").GetUniqueValues("","第一列")
Dim lst2 As List(of String) = DataTables("表A").GetUniqueValues("","第二列")
Dim dic As New Dictionary(Of String, WinForm.TreeNode)
Dim tnd As WinForm.TreeNode
trv.Nodes.Clear()
For Each Val As String In Lst1
If lst2.Contains(val) = False Then
tnd = trv.Nodes.Add(val,val)
dic.Add(val,tnd)
End If
Next
For Each dr As DataRow In DataTables("表A").Select("", "第一列, 第二列")
tnd = dic(dr("第一列")).Nodes.Add(dr("第二列"), dr("第二列"))
dic.Add(dr("第二列"),tnd)
Next
[此贴子已经被作者于2010-12-6 15:31:26编辑过]
收藏,谢谢!