请教各位大哥一个控件,该控件显示树形的层次关系,就象资源管理器里面的文件夹的结构。
现要实现如下结构,请问大哥们,该控件的名字,在VB“部件”中该引用哪个“.OCX”文件?如何使之与数据库连接并显示其中的记录?
市区学校
|_____一中
| |________高一
| | |______一班
| | |______二班
| | |______三班
|
| |________高二
| |________高三
|
|_____二中
| |________初一
| |________初二
| |________初三
|
|_____试验小学
|________一年级
|________二年级
|________三年级
.
.
.
.
.
.
现要实现如下结构,请问大哥们,该控件的名字,在VB“部件”中该引用哪个“.OCX”文件?如何使之与数据库连接并显示其中的记录?
市区学校
|_____一中
| |________高一
| | |______一班
| | |______二班
| | |______三班
|
| |________高二
| |________高三
|
|_____二中
| |________初一
| |________初二
| |________初三
|
|_____试验小学
|________一年级
|________二年级
|________三年级
.
.
.
.
.
.
Public Sub CustData()
Dim i As Integer
Dim NodeList As Node
On Error Resume Next
Set treCustomer.ImageList = imgCust
Set OldNodeCust =treCustomer.SelectedItem With treCustomer.Nodes
.Clear
Set NodeList = .Add(, , "RootCust", "所有客戶", 1)
NodeList.Expanded = True
NodeList.Tag = "RootCust"
NodeList.Selected = True
'--第一層
If AdoRs.state <> adStateClosed Then Rs.Close
AdoRs.Open "select distinct custnames= a.fact + '+' +a. area from c_cust as a,c_lman2 as b where a.fact=b.factname ", AdoConn, adOpenKeyset, adLockPessimistic
For i = 1 To AdoRs.RecordCount
Set NodeList = .Add("RootCust", tvwChild, "S" & AdoRs("custnames"), AdoRs("custnames"), 1)
NodeList.Tag = "FactArea"
AdoRs.MoveNext
Next i
'--第二層
If AdoRs.state <> adStateClosed Then AdoRs.Close
AdoRs.Open "select distinct a.cust_no,a.full_name,custnames =a.fact + '+' +a. area from c_cust as a ,c_lman2 as b where a.fact=b.factname and a.cust_no=b.custno", AdoConn, adOpenKeyset, adLockPessimistic
For i = 1 To AdoRs.RecordCount
Set NodeList = .Add("S" & AdoRs("custnames"), tvwChild, "Z" & AdoRs("cust_no"), Trim("" & AdoRs("full_name")), 1)
NodeList.Tag = "CustName"
AdoRs.MoveNext
Next i
End With
End Sub建立treeview的時候遵循
'TreeView 引用方法
'nodes.add 親子, 親子關係,索引鍵,文字,示意圖,被選取的圖示
一層層有順序的建立下去,就一定可以建立成功的。
主要要記得索引鍵一定得為string,應該是vb的bug,所以我在上面建立數的時候關鍵字是取
Z" & AdoRs("cust_no"),加了"Z"以後形態就變化了。
TreeView1.LineStyle =TvwTreeLines '在兄弟节点和父节点之间显示线
TreeView1.ImageList = ImageList1 '链接图像列
TreeView1.Style = tvwTreelinesPlusMinusPictureText
'树状外观包含全部元素
Set nodx = TreeView1.Nodes.Add(, , "蒲子明", "蒲子明", 1)
'建立名称为"蒲子明"的父节点,选择索引为1的图像
Set nodx = TreeView1.Nodes.Add("蒲子明", tvwChild, "child01", "收件箱", 3)
'在"蒲子明"父节点下建立"收件箱"子节点,选择索引为3的图像
Set nodx = TreeView1.Nodes.Add("蒲子明", tvwChild, "child02", "发件箱", 3)
'在"蒲子明"父节点下建立"发件箱"子节点,选择索引为3的图像
CunZai = False
End SubPrivate Sub TreeView1_Expand(ByVal Node As MSComctlLib.Node)
Node.ExpandedImage = 2 '节点被展开时,选择索引为2的图像
End SubPrivate Sub TreeView1_NodeClick(ByVal Node As MSComctlLib.Node)
If TreeView1.SelectedItem.Children = 0 Then '检查是否有子节点,0为无
For I = 1 To TreeView1.Nodes.Count
If TreeView1.Nodes(I).Selected Then
MsgBox "您选择的是:“" & TreeView1.Nodes(I).FullPath & "”子节点!"
'系统提示
End If
Next I
End If
End Sub