怎么样利用vb treeview 请告知!!

解决方案 »

  1.   

    Option Explicit  'treeview的使用
    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As LongPrivate Const TV_FIRST = &H1100Private Const TVM_SETBKCOLOR = TV_FIRST + 29 Dim i As Integer
     Dim Id As Long
     Dim Max As Integer
     Dim Totel As Integer
     Dim mNode As Node
     Dim Str(4) As String
     
    Private Sub Command1_Click()
      Totel = Data1.Recordset.RecordCount
      Data1.Caption = Totel
      ProgressBar1.Max = Totel
      Do While Data1.Recordset.EOF = False
         For i = 0 To 4
          Str(i) = Data1.Recordset.Fields(i).Value
         Next
         Max = Max + 1
         ProgressBar1.Value = Max
         Set mNode = TreeView1.Nodes.Add("Root", tvwChild, "Str" & CStr(Id), Str(0))
         Set mNode = TreeView1.Nodes.Add("Str" & CStr(Id), tvwChild, "Str" & CStr(Id + 1), Str(1))
         Set mNode = TreeView1.Nodes.Add("Str" & CStr(Id), tvwChild, "Str" & CStr(Id + 2), Str(2))
         Set mNode = TreeView1.Nodes.Add("Str" & CStr(Id), tvwChild, "Str" & CStr(Id + 3), Str(3))
         Data1.Recordset.MoveNext
         Id = Id + 4
     Loop
         
    Set mNode = Nothing
         
         
         
    End SubPrivate Sub Form_Load()
     Me.Show
     Set mNode = Me.TreeView1.Nodes.Add(, tvwChild, "Root", "ROOT")
     Call SendMessage(TreeView1.hwnd, TVM_SETBKCOLOR, 0, RGB(255, 255, 0)) '设置treeview的背景颜色
     
    End Sub
      

  2.   

    在 Treeview 控件的 Nodes 集合中添加一个 Node 对象。语法object.Add(relative, relationship, key, text, image, selectedimage)Add 方法的语法包含下面部分:部分 描述 
    object 必需的。对象表达式,其值是“应用于”列表中的一个对象 
    relative 可选的。已存在的 Node 对象的索引号或键值。新节点与已存在的节点间的关系,可在下一个参数 relationship 中找到。 
    relationship 可选的。指定的 Node 对象的相对位置,如设置值中所述。 
    key 可选的。唯一的字符串,可用于用 Item 方法检索 Node。 
    text 必需的。在 Node 中出现的字符串。 
    image 可选的。在关联的 ImageList 控件中的图像的索引。 
    selectedimage  可选的。在关联的 ImageList 控件中的图像的索引,在 Node 被选中时显示。 
    设置值relationship 的设置值是:常数 值 描述 
    tvwFirst 0 首的节点。该 Node 和在 relative 中被命名的节点位于同一层,并 位于所有同层节点之前。 
    tvwLast 1 最后的节点。该 Node 和在 relative 中被命名的节点位于同一层,并 位于所有同层节点之后。任何连续地添加的节点可能位于最后添加的节点之后 
    tvwNext 2 (缺省)下一个节点。该 Node 位于在 relative 中被命名的节点之后。 
    tvwPrevious 3 前一个节点。该 Node 位于在 relative 中被命名的节点之前。 
    tvwChild 4 (缺省)子节点。该 Node 成为在 relative 中被命名的 
    节点的子节点。
     
    注意 如果在 relative 中没有被命名的 Node 对象,则新节点被放在节点顶层的最后位置。说明Nodes 集合是一个基于 1 的集合。在添加 Node 对象时,它被指派一个索引号,该索引号被存储在 Node 对象的 Index 属性中。这个最新成员的 Index 属性值就是 Node 集合的 Count 属性的值。因为 Add 方法返回对新建立的 Node 对象的引用,所以使用这个引用来设置新 Node 的属性十分方便。以下例子添加几个具有相同属性的 Node 对象:Dim nodX As Node   '声明对象变量。
    Dim I as Integer   '声明计数器变量。
    For I = 1 to 4
       Set nodX = TreeView1.Nodes.Add(,,,"Node " & Cstr(i))
       '使用引用来设置其它属性,如 Enabled。
       nodX.Enabled = True
       '把图像属性设置为在关联的 ImageList 中的图像 3。
       nodX.ExpandedImage = 3
    Next I
      

  3.   

    不晓得有没有TreeView同步选择的程序,其实就是想实现选择父结点时,相应的子结点也被选中了;