2011-03-02 6 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 채우기

경로를 트리 뷰에 넣는 방법에 대한 아이디어 나 예를 모두 제공 할 수 있습니까?

답변

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"라고 그 아이 노드에 "아이"하고 아이라는 것입니다. | -Child
|이

루트
:-) 내가 여기에 가짜 수있는 최선의 도면이다 | -Child 2

+0

감사합니다. 그러나 각 경로를 여러 폴더로 분할 한 후에 어떤 부모가 속한 것인지 알 수 없습니다. 게다가 루트가 이미 존재하는지 여부를 어떻게 확인할 수 있습니까? – Lynnooi

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