2011-03-02 89 views
1

我需要填充treeview與文件夾名稱我從幾條路徑。例如,我有這幾條路徑: C:\ admin \ tester1 \ project \ item1 \ abc, C:\ admin \ tester1 \ project \ item2 \ abc, C:\ admin \ tester1 \ project \ item1 \ def, C:\ admin \ tester1 \ project3 \ item2 \ ghivb6 - 填充treeview

你們都可以提供一些關於如何將路徑放入treeview的想法或例子嗎?

回答

3

您需要添加根節點,然後將每個級別添加爲根節點的子節點或其父節點。

' Add Node objects. 
Dim nodX As Node ' Declare Node variable. 
' First node with 'Root' as text. 
Set nodX = TreeView1.Nodes.Add(, , "r", "Root") 

' This next node is a child of Node 1 ("r"). 
Set nodX = TreeView1.Nodes.Add("r", tvwChild, "child1", "Child") 

' This next node is a child of Node 2 ("child"). 
Set nodX = TreeView1.Nodes.Add("child1", tvwChild, "child2", "Child 2") 

此代碼將廣告所說的「根」根節點,然後子節點被稱爲「孩子」,然後一個孩子叫「孩子2」的子節點。這是最好的圖紙我在這裏可以僞造:-)


| - 兒童
| | - 兒童2

+0

感謝。但是,在將每個路徑分成幾個文件夾後,我不知道它屬於哪個父項。另外,如何檢查根目錄是否已經存在 – Lynnooi 2011-03-02 06:38:26

0

添加TreeView控制在窗體上,嘗試這樣的:

Option Explicit 

Private Sub Form_Load() 
    pvAddPath TreeView1, "C:\admin\tester1\project\item1\abc" 
    pvAddPath TreeView1, "C:\admin\tester1\project\item2\abc" 
    pvAddPath TreeView1, "C:\admin\tester1\project\item1\def" 
    pvAddPath TreeView1, "C:\admin\tester1\project3\item2\ghi" 
End Sub 

Private Sub pvAddPath(oCtl As TreeView, ByVal sPath As String) 
    Dim lNext   As Long 
    Dim lStart   As Long 

    If oCtl.Nodes.Count = 0 Then 
     oCtl.Indentation = 0 
    End If 
    Do While lStart < Len(sPath) 
     lNext = InStr(lStart + 1, sPath, "\") 
     If lNext = 0 Then 
      lNext = Len(sPath) + 1 
     End If 
     On Error Resume Next 
     If lStart = 0 Then 
      oCtl.Nodes.Add(, , Left$(sPath, lNext), Left$(sPath, lNext)).Expanded = True 
     Else 
      oCtl.Nodes.Add(Left$(sPath, lStart), tvwChild, Left$(sPath, lNext), Mid$(sPath, lStart + 1, lNext - lStart - 1)).Expanded = True 
     End If 
     On Error GoTo 0 
     lStart = lNext 
    Loop 
End Sub