我正在动态填充树视图,所以我不知道我可能有多少级别。
有没有办法回滚到上一级?以下是我的代码示例:
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是我的树视图。在下面的代码中,我将迭代遍历给出一些项目的树视图。我的零件清单包含零件编号,效果很好。
在我的回滚过程中,我将树节点设置为开头: node = tvDessins.Nodes
而不是简单地转到父节点......这就是我想要实现的目标!
谢谢,抱歉这么长的帖子。
答案 0 :(得分:0)
我明白了。
以下是答案:
If rollback Then
currFileName = node.Item(0).Parent.Nodes(iterator).Text 'retrieves parent
Else
currFileName = node(iterator).Nodes.Item(0).Text
End If