读书人

vb2005 Treeview ,添加多级子节点有关

发布时间: 2012-01-13 22:43:29 作者: rapoo

vb2005 Treeview ,添加多级子节点问题.
root
|___a
| |___a1
| |___a11
|
……

用代码添加上面的节点要这样写,

TreeView1.Nodes.Add( "root ", "root ")
TreeView1.Nodes( "root ").Nodes.Add( "a ", "a ")
TreeView1.Nodes( "root ").Nodes( "a ").Nodes.Add( "a1 ", "a1 ")
TreeView1.Nodes( "root ").Nodes( "a ").Nodes( "a1 ").Nodes.Add( "a11 ", "a11 ")
……

在VB6上直接在父节点上添加就可以了。2005怎么变得这么麻烦,有其它方便的好办法吗?



[解决办法]
http://www.microsoft.com/china/MSDN/library/archives/library/DNAspp/html/aspnet-usingtreeviewieWebcontrol.asp
http://www.cnblogs.com/index/archive/2004/10/28/57904.aspx
[解决办法]
每个记录设计ID,唯一的,一个父键 指定该节点从属于那个节点ID
假设父键-1是顶层节点。
Sub CreateTree(ByVal PID As Long, ByVal PNode As TreeNode)
Dim i As Integer
Dim myConn As New OleDbConnection(ConnStr)
myConn.Open()

Dim myComm As New OleDbCommand( "select * from DataCenter where 父键=@pid ", myConn)

myComm.Parameters.Clear()
myComm.Parameters.Add( "pid ", PID)
Dim dr As OleDbDataReader
dr = myComm.ExecuteReader
PNode.Nodes.Clear()
i = 0
Do While dr.Read
PNode.Nodes.Add(dr.Item( "标题 "))
CreateTree(PNode.Nodes(i),dr.Item( "ID "))
i = i + 1
Loop
dr.Close()
myConn.Close()
End Sub

如果不用DataReader也可以考虑用DataSet代替,相同方法

读书人网 >VB Dotnet

热点推荐