ツリービューに動的にデータを入力しているので、レベルの量がわかりません。
前のレベルにロールバックする方法はありますか?これが私のコードのサンプルです:
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
単に親ノードに行くのではなく...それが私が達成しようとしていることです!
長い投稿をありがとうございました。