2012-12-12 3 views
0

Я заполняю древовидное представление динамически, поэтому я не знаю количества уровней, которые у меня могут быть.VB.Net Treeview «Откат»

Есть ли способ откат к предыдущему уровню? Вот пример моего кода:

Private Sub RecursiveTreeAssembly(FileName As String, node As TreeNodeCollection) 
    'Sets sFileNamePath to correct path value 
    FileNameToFilePath(FileName) 

    'Start SolidEdge 
    StartSolidEdge() 

    'Open document 
    OpenSolidEdgeDocument(sFileNamePath) 

    'Get the parts list for the opened document (FileName) 
    partList = clsPartInformation.GetAll() 

    'Populate tree View 
    If partList.Count > 0 Then 
     'PartsList retrieved, close document 
     CloseSolidEdgeDocument(FileName) 

     'Go through all part lists and display them in tree view 
     For i As Integer = 0 To partList.Count - 1 
      'Is it Assembly, Parametric, Material, Part to buy 
      If IsAssembly(partList(i).Part_No) Then 
       node(iterator).Nodes.Add(partList(i).Part_No) 
      ElseIf IsMaterial(partList(i).Part_No) Then 
       node(iterator).Nodes.Add(partList(i).Part_No) 
      ElseIf IsPart(partList(i).Part_No) Then 
       node(iterator).Nodes.Add(partList(i).Part_No) 
      End If 

      tvDessins.ExpandAll() 
     Next 
    End If 

    'Go through tree view to populate it 
    While iterator < tvDessins.Nodes(0).Nodes.Count 
     If rollback Then 
      node = tvDessins.Nodes 
      currFileName = node(0).Nodes.Item(iterator).Text 
     Else 
      currFileName = node(iterator).Nodes.Item(0).Text 
     End If 

     If IsAssembly(currFileName) Then 
      rollback = False 
      'Call itself again 
      RecursiveTreeAssembly(currFileName, node(0).Nodes) 
     Else 
      'Rollback nodes 
      rollback = True 
     End If 

     iterator += 1 
    End While 
End Sub 

tvDessin - мое дерево. В следующем коде я буду выполнять итерацию через древовидное представление, которое рекурсивно решает некоторые элементы. Мой список деталей содержит номер детали, который отлично работает.

Именно во время моего откате, что я поставил узлы дерева к началу: узел = tvDessins.Nodes

Вместо того, чтобы просто пойти на родительский узел ... Это то, что я ищу, чтобы достичь!

Спасибо, извините за такой длинный пост.

ответ

0

Я понял.

Вот ответ:

If rollback Then 
    currFileName = node.Item(0).Parent.Nodes(iterator).Text 'retrieves parent 
Else 
    currFileName = node(iterator).Nodes.Item(0).Text 
End If 
Смежные вопросы