请教各位大哥一个控件,该控件显示树形的层次关系,就象资源管理器里面的文件夹的结构。
现要实现如下结构,请问大哥们,该控件的名字,在VB“部件”中该引用哪个“.OCX”文件?如何使之与数据库连接并显示其中的记录?
市区学校
   |_____一中
   |        |________高一
   |        |         |______一班
   |        |         |______二班
   |        |         |______三班
            |
   |        |________高二
   |        |________高三
   |
   |_____二中
   |        |________初一
   |        |________初二
   |        |________初三
   |
   |_____试验小学
            |________一年级
            |________二年级
            |________三年级
               .    
               .
               .             
               .
               .
               .

解决方案 »

  1.   

    Microsoft Windows Common Control6.0
      

  2.   

    因為不知道你的數據庫結構,給你一個示范
    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"以後形態就變化了。
      

  3.   

    Private Sub Form_Load()
     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