0

ツリービューに動的にデータを入力しているので、レベルの量がわかりません。

前のレベルにロールバックする方法はありますか?これが私のコードのサンプルです:

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

単に親ノードに行くのではなく...それが私が達成しようとしていることです!

長い投稿をありがとうございました。

4

1 に答える 1

0

私はそれを考え出した。

答えは次のとおりです。

If rollback Then
    currFileName = node.Item(0).Parent.Nodes(iterator).Text 'retrieves parent
Else
    currFileName = node(iterator).Nodes.Item(0).Text
End If
于 2012-12-12T19:26:48.930 に答える