请问如何用VB在自己的程序中使用象“资源管理器”中的显示为“树型”文件夹的控件
要源码,谢谢。

解决方案 »

  1.   


    Private Sub Form_Load()
    Dim nodx As Node
    Set nodx = trv.Nodes.Add(, , "AA", "第一项")
    Set nodx = trv.Nodes.Add(, , "BB", "第二项")
    Set nodx = trv.Nodes.Add(, , "CC", "第三项")Set nodx = trv.Nodes.Add("AA", 4, , "192.168.1.227")
    Set nodx = trv.Nodes.Add("AA", 4, , "192.168.1.224")
    Set nodx = trv.Nodes.Add("AA", 4, , "192.168.1.228")
    nodx.EnsureVisibleSet nodx = trv.Nodes.Add("BB", 4, , "192.168.1.163")
    Set nodx = trv.Nodes.Add("BB", 4, , "192.168.1.47")
    nodx.EnsureVisible
    '首先在菜单"工程"--"部件"中选中"microsoft Windows Common Controls 6.0"
    '在窗口中画一个TreeView控件
    Set nodx = TreeView1.Nodes.Add("CC", 4, , "192.168.1.121")
    Set nodx = TreeView1.Nodes.Add("CC", 4, , "192.168.1.192")
    Set nodx = TreeView1.Nodes.Add("CC", 4, , "192.168.1.133")
    Set nodx = TreeView1.Nodes.Add("CC", 4, "vdsl1", "192.168.1.131")
    Set nodx = TreeView1.Nodes.Add("CC", 4, "aa", "123456789")
    nodx.EnsureVisibleSet nodex = TreeView1.Nodes.Add("aa", 4, , "这是123456789下面的一个节点")
    End Sub
      

  2.   

    '不好意思,如下.'首先在菜单"工程"--"部件"中选中"microsoft Windows Common Controls 6.0"
    '在窗口中画一个TreeView控件Private Sub Form_Load()
    Dim nodx As Node
    Set nodx = TreeView1.Nodes.Add(, , "AA", "第一项")
    Set nodx = TreeView1.Nodes.Add(, , "BB", "第二项")
    Set nodx = TreeView1.Nodes.Add(, , "CC", "第三项")Set nodx = TreeView1.Nodes.Add("AA", 4, , "192.168.1.227")
    Set nodx = TreeView1.Nodes.Add("AA", 4, , "192.168.1.224")
    Set nodx = TreeView1.Nodes.Add("AA", 4, , "192.168.1.228")
    nodx.EnsureVisibleSet nodx = TreeView1.Nodes.Add("BB", 4, , "192.168.1.163")
    Set nodx = TreeView1.Nodes.Add("BB", 4, , "192.168.1.47")
    nodx.EnsureVisibleSet nodx = TreeView1.Nodes.Add("CC", 4, , "192.168.1.121")
    Set nodx = TreeView1.Nodes.Add("CC", 4, , "192.168.1.192")
    Set nodx = TreeView1.Nodes.Add("CC", 4, , "192.168.1.133")
    Set nodx = TreeView1.Nodes.Add("CC", 4, "vdsl1", "192.168.1.131")
    Set nodx = TreeView1.Nodes.Add("CC", 4, "aa", "123456789")
    nodx.EnsureVisibleSet nodex = TreeView1.Nodes.Add("aa", 4, , "这是123456789下面的一个节点")
    End Sub
      

  3.   

    在窗体中添加下面的几个控件:
    DirListBox   命名为Dir1
    FileListBox  命名为File1
    DriveListBox 命名为Drive1
    在加入下面的源码:
    Private Sub Dir1_Change()
        File1.Path = Dir1.Path
    End SubPrivate Sub Drive1_Change()
        Dir1.Path = Drive1.Drive
    End Sub
      

  4.   

    TreeView 控件的简介          TreeView 控件显示 Node 对象的分层列表,每个 Node 对象均由一个标签和一个可选的位图组成。TreeView 一般用于显示文档标题、索引入口、磁盘上的文件和目录、或能被有效地分层显示的其它种类信息。语法Treeview说明创建了 TreeView 控件之后,可以通过设置属性与调用方法对各 Node 对象进行操作,这些操作包括添加、删除、对齐和其它操作。可以编程展开与折回 Node 对象来显示或隐藏所有子节点。Collapse、Expand 和 NodeClick 三个事件也提供编程功能。Node 对象使用 Root、Parent、Child、FirstSibling、Next、Previous 和 LastSibling 属性。在代码中可通过检索对 Node 对象的引用,从而在树上定位。也可以使用键盘定位。UP ARROW 键和 DOWN ARROW 键向下循环穿过所有展开的 Node 对象。从左到右、从上到下地选择 Node 对象。若在树的底部,选择便跳回树的顶部,必要时滚动窗口。RIGHT ARROW 键和 LEFT ARROW 键也穿过所有展开的 Node 对象,但是如果选择了未展开的 Node之后再按 RIGHT ARROW 键,该 Node 便展开;第二次按该键,选择将移向下一个 Node。相反,若扩展的 Node 有焦点,这时再按 LEFT ARROW 键,该 Node 便折回。如果按下 ANSI 字符集 中的键,焦点将跳转至以那个字母开头的最近的 Node。后续的按该键的动作将使选择向下循环,穿过以那个字母开头的所有展开节点。控件的外观有八种可用的替换样式,它们是文本、位图、直线和 +/- 号的组合,Node 对象可以任一种组合出现。TreeView 控件使用由 ImageList 属性指定的 ImageList 控件,来存储显示于 Node 对象的位图和图标。任何时刻,TreeView 控件只能使用一个 ImageList。这意味着,当 TreeView 控件的 Style 属性被设置成显示图像的样式时,TreeView 控件中每一项的旁边都有一个同样大小的图像。提示: TreeView 控件是 MSCOMCTL.OCX 文件中的一组 ActiveX 控件的一部分。为了在应用程序中使用 TreeView 控件,必须将 MSCOMCTL.OCX 文件添加到工程中。在发行应用程序时,要在用户的 Microsoft Windows System 或 System32 目录中安装 MSCOMCTL.OCX 文件。
      

  5.   

    '在工具箱内添加Microsoft Windows Common Controls 6.0
    '在Form上添加一个TreeView,Name为tvBG
    Private Sub Form_Load()
    Dim Root As Node'Add some items
    With tvBG.Nodes
    Set Root = .Add(, , , "Top-level Node #1")
    .Add Root.Index, tvwChild, , "Child Node #1"
    .Add Root.Index, tvwChild, , "Child Node #2"
    .Add Root.Index, tvwChild, , "Child Node #3"
    Set Root = .Add(, , , "Top-level Node #2")
    .Add Root.Index, tvwChild, , "Child Node #1"
    .Add Root.Index, tvwChild, , "Child Node #2"
    .Add Root.Index, tvwChild, , "Child Node #3"
    Set Root = .Add(, , , "Top-level Node #3")
    .Add Root.Index, tvwChild, , "Child Node #1"
    .Add Root.Index, tvwChild, , "Child Node #2"
    .Add Root.Index, tvwChild, , "Child Node #3"
    Set Root = .Add(, , , "Top-level Node #4")
    .Add Root.Index, tvwChild, , "Child Node #1"
    .Add Root.Index, tvwChild, , "Child Node #2"
    .Add Root.Index, tvwChild, , "Child Node #3"
    End WithEnd Sub
      

  6.   

    Add 
    --------------------------------------------------------------------------------
    描述: 
      添加一个节点
     
      
    语法: 
      Object.add Text, Key, HyperLink, Node, AddType, Image 
       部分 描述 
      Object TreeView对象 
      Text 文本型,节点显示的文本,不能为空 
      Key 文本型,节点的关键子,在整个树中应是唯一的。不能是纯数字 
      HyperLink 文本型,节点的链界地址。可以为空 
      Node 节点对象,配合AddType使用。添加根节点时使用Nothing 
      AddType 数字型,节点的添加类型,可以使用常数 
      Image 文本型,节点前的图标,具体内容应为树对象的Images集合中的一个关键字 
     
        
    返回值: 
      所添加的节点对象Node 
        
    例子:   
     
    Dim Tree1 
    Set Tree1 = New TreeView 
    With Tree1 
        .Name = "Tree1" 
        .FirstDisplayLevel = 1 
        .ImagePath = "../image"     .Add "根节点","Root","",Nothing,tvwRoot,""                 '添加根节点Node参数必须传入Nothing 
        .Add "节点1","Key1","链接1",.Nodes("Root"),tvwChild,""     '当AddType=1时,添加子节点 
        .Add "节点2","Key2","链接2",.Nodes(1),tvwChild,""          'Nodes集合可以使用关键字和数字两种方式引用 
        .Add "节点4","Key4","链接4",.Nodes("Key2"),tvwNext,""      '当AddType=3时,添加后置节点,节点放在Node的后面 
        .Add "节点3","Key3","链接3",.Nodes("Key4"),tvwPrevious,""  '当AddType=2时,添加前置节点,节点放在Node的前面 
    End With 
      

  7.   

    Nodes 
    --------------------------------------------------------------------------------
    描述: 
      TreeView对象的节点集合,使用节点的关键字或序号来引用。节点序号是按照添加顺序排列,而不是显示的顺序。
     
      
    语法: 
      Object.Nodes 
       部分 描述 
      Object TreeView对象 
     
        
    例子: Dim Tree1 
    Set Tree1 = New TreeView 
    With Tree1 
        .Name = "Tree1" 
        .FirstDisplayLevel = 1 
        .ImagePath = "../image"     .Add "根节点","Root","",Nothing,0,"" 
        .Add "节点1","Key1","",.Nodes("Root"),1,"" 
        .Add "节点2","Key2","",.Nodes(1),1,"" 
        .Add "节点4","Key4","",.Nodes("Key2"),3,"" 
        .Add "节点3","Key3","",.Nodes("Key4"),2,"" 
    End With 
    Sub DoIt() 
        For i=1 To Tree1.NodesCount 
            Msgbox "第" & i & "个节点:" & Tree1.Nodes(i).Text 
        Next 
    End Sub 
      

  8.   

    http://vb.infoserv.com.tw/cptVB/Explorer.ziphttp://vbworld.sxnw.gov.cn/Source/openfile.asp?kind=file&id=2&filename=dirview.zip
    http://www.applevb.com/sourcecode/fsofolder.zip
      

  9.   

    Windows的资源管理器具有界面直观、 操作简便的特点,深受广大电脑爱好者的欢迎和喜爱。 
        利用VB提供的TreeView控件完全可以把磁盘上的目录(包括子目录)放入Node对象中,其界面具有资源管理器的特点。把磁盘上的目录放入Node对象有多种方法,应该说采用递归方法是比较简洁的。 
        递归过程实现的思路: 
        简言之,递归过程就是子程序自己调用自己。由于磁盘上的目录是树形结构,而树形的节点和节点级数是不受限定的,仅把目录名放入一维或多维数组中难度较大,不易实现。编一子程序,给定目录,并建立当前节点,加入Node对象中,根据Dir1控件判断给定目录下是否有下级目录,如有,添加下级节点,并加入Node对象中如无则退出子程序。即子程序的功能是:如给定目录有子目录,则展开当前目录求子目录。如果在给定目录展开完成后,把下级目录当成给定目录,并调用子程序进行展开,即可把给定目录下的数级子目录全部展开完毕。下面就举例说明,为简便起见,TreeView控件只放入目录,文件名省略。 
        实现的过程: 
        1、 添加TreeView控件到窗体中:单击—“工程”—“部件”,选择Microsoft Windows Common Control 6.0”(文件路径为\WinNT\System32\Mscomctl.ocx)复选框,单击—“确定“按钮,TreeView控件即可出现在工具箱中并添加。 
        2、 在窗体中添加Drive、DirListBox、ImageList控件。 
        3、 控件名及主要属性如下: 
    控件及窗体名 
     主要属性值 
     备注 
     
    Form 
     Name=Form1:Caption=”测试窗体” 
       
     
    TreeView 
     Name=TreeView1 
       
     
    Drive 
     Name=Drive1:Visible=False 
     获得当前电脑磁盘的盘符 
     
    DirListBox 
     Name=Dir1:Visible=False 
       
     
    ImageList 
     Name=ImageList1 
     给TreeView1的Node对象图标 
     
     
        在应用程序当前目录下,放入一16X16的位图文件123.bmp,供TreeView1控件显示用。 
        实现的源程序如下: 
    Option Explicit '必须进行变量声明 
    Dim nodx As Node 
    Private Sub Form_Load() 
    On Error Resume Next 
    '控件与窗体一样大 
    TreeView1.Height = Form1.ScaleHeight 
    TreeView1.Width = Form1.ScaleWidth 
    '在 ImageList 控件中添加一个图象,该图像用于显示在TreeView1控件上。 
    Dim imgX As ListImage 
    '调入图形文件 
    Set imgX = ImageList1.ListImages.Add(, , LoadPicture("123.bmp")) 
    TreeView1.ImageList = ImageList1 '初始化ImageList。 
    TreeView1.LineStyle = tvwRootLines 
    TreeView1.Style = tvwTreelinesPlusMinusPictureText 
    Dim DriverCount As Integer 
    Dim GivePath As String 
    '创建根节点 
    Set nodx = TreeView1.Nodes.Add(, , "本人电脑", "本人电脑", 1) 
    For DriverCount = 0 To Drive1.ListCount - 1 
    GivePath = Left(Drive1.List(DriverCount), 2) + "\" 
    Set nodx = TreeView1.Nodes.Add("本人电脑", tvwChild, GivePath, GivePath, 1) 
    SSplitNode GivePath '把各盘的文件夹进行展开放于TreeView1控件中 
    Next DriverCount 
    End Sub 
    Sub SSplitNode(sGivePath As String) '子过程 
    '把给定目录下的子目录全部加入Node对象中 
    Dim SDI As Integer 
    Dim SDCount As Integer 
    '用于存放给定目录的下级子目录,该变量数组随递归过程调用而发生变化 
    Dim GivePathSubDir() As String 
    '如有则展开目录并放入TreeView1控件中 
    Dir1.Path = sGivePath 
    SDCount = Dir1.ListCount 
    If SDCount <> 0 Then 
    ReDim GivePathSubDir(SDCount - 1) 
    '把下级目录放入变量数组GivePathSubDir中 
    SubSaveSubDir sGivePath, GivePathSubDir, SDCount 
    End If 
    If SDCount = 0 Then Exit Sub 
    '即为递归出口。否则会形成死循环。 
    For SDI = 0 To SDCount - 1 
    Set nodx = TreeView1.Nodes.Add(sGivePath, tvwChild, _ 
    GivePathSubDir(SDI), FOnlyPath(GivePathSubDir(SDI)), 1) 
    Next SDI 
    '调用递归(子程序自己调用自己) 
    For SDI = 0 To SDCount - 1 
    sGivePath = GivePathSubDir(SDI) 
    SSplitNode sGivePath 
    Next SDI 
    End Sub 
    Sub SubSaveSubDir(fGivePath As String, fGivePathSubDir() As String, fSDCount As Integer) 
    'fGivePath 给定目录串 
    'fGivePathSubDir 用于存放子目录 
    'fSDCount 子目录数 
    Dim i As Integer: Dim t As Integer 
    Dir1.Path = fGivePath 
    t = Dir1.ListCount 
    For i = 0 To t - 1 
    fGivePathSubDir(i) = Dir1.List(i) 
    Next i 
    fSDCount = t 
    End Sub 
    Function FOnlyPath(DString As String) As String 
    '功能是去掉上级目录,只留下当前目录名 
    'DString为给定的全路径目录名 
    If DString = "" Then Exit Function 
    Dim DLength As Integer 
    DLength = Len(DString) 
    Dim DD As Integer 
    For DD = DLength To 1 Step -1 
    If Mid(DString, DD, 1) = "\" Then Exit For 
    Next DD 
    FOnlyPath = Mid(DString, DD + 1) 
    End Function 
    Private Sub Form_Resize() 
    '控件与窗体一样大 
    TreeView1.Height = Form1.ScaleHeight 
    TreeView1.Width = Form1.ScaleWidth 
    End Sub 
    本程序在Win2000,VB6.0中文版下通过。 
      

  10.   

    我不是要学如何使用TreeView控件,
    而是想通过一个界面可以选择想选的文件夹(非文件)

    DirListBox   
    FileListBox  
    DriveListBox 
    方便的一种方法