VB中用TreeView控件显示目录结构的简便方法

软件世界

本文介绍的是将目录加入到TreeView的简便方法,这种方法不需要使用Win32API,从而简化了开发工作。
首先,新建一个“标准EXE”工程,再在工程中添加部件“Microsoft Windows Common Controls 6.0”,然后在Form中添加TreeView控件、两个Dir控件和一个Command控件,并把Command1的Caption属性设置为“装载C:盘”,把TreeView1的LineStyle属性改为“1-tvwRootLines”,Indentation属性改为“300”(见(图1))。设置完后键入以下代码。

图1
图1

Public Sub LoadDirToTreeV(strPath As String)
Dim i As Integer, ii As Integer
Dim DirName As String
Dir1.Path = "C:\"
Dir1.Path = strPath
On Error Resume Next
TreeView1.Nodes.Add , , strPath, strPath
For i = 0 To Dir1.ListCount - 1
DirName = SplitString(Dir1.List(i), "\")
TreeView1.Nodes.Add strPath, 4, Dir1.List(i), DirName
Dir2.Path = Dir1.List(i)
For ii = 0 To Dir2.ListCount - 1
DirName = SplitString(Dir2.List(ii), "\")
TreeView1.Nodes.Add Dir1.List(i), 4, Dir2.List(ii), DirName
Next ii
Next i
End Sub
Public Function SplitString(Expression As String, SplitFlage As String) As String
Dim StringLen As Integer, i As Integer
Dim strTemp1 As String, strTemp2 As String
StringLen = Len(Expression)
For i = 1 To StringLen
strTemp1 = Right$(Expression, i)
strTemp2 = Left$(strTemp1, 1)
If strTemp2 = SplitFlage Then
SplitString = Right$(strTemp1, i - 1)
Exit Function
End If
Next i
SplitString = ""
End Function
Private Sub Command1_Click()
LoadDirToTreeV "C:\"
End Sub
Private Sub TreeView1_Expand(By Val Node As MSComctlLib.Node)
LoadDirToTreeV Node.Key
End Sub
注:以上程序在Win95、VB6中通过。