このプログラムは、VB 2008 で記述された Windows フォーム アプリです。データ テーブル (dtSubFolders) があり、その NodesCollection を再帰サブルーチンに送信して、ツリービュー (tv_Folder_Hierarchy) を繰り返し作成しています。一番下のデータが示すように、NodesCollection は正しく設定されているようです。ただし、ルートを展開すると、その 7 つの子が表示され、vs32host.exe が動作を停止しましたというエラーが表示されます。
For Each row In dtSubFolders.Rows
m_folder_Node = New TreeNode
Get_TV_Node(tv_Folder_Hierarchy.Nodes, row(1).ToString)
If Len(m_folder_Node.Name) > 0 Then
m_folder_Node.Nodes.Add(row(0).ToString, row(2))
Else
tv_Folder_Hierarchy.Nodes.Add(row(0).ToString, row(2))
End If
Next
Private Sub Get_TV_Node(ByRef Nodes As TreeNodeCollection, ByVal Name As String)
Dim node As TreeNode
If Len(m_folder_Node.Name) = 0 Then
For Each node In Nodes
If node.Name = Name Then
m_folder_Node = node
Exit For
Else
If node.Nodes.Count > 0 Then Get_TV_Node(node.Nodes, Name)
End If
Next
End If
End Sub
ID 親 子供 テキスト
1811 なし 7 ルート フォルダ
1818 1811 40 アワード作成
1828 1818 0 アワード作成サブ 1
1819 1818 0 アワード作成サブ 2
1824 1818 0 アワード作成サブ 3
1839 1818 0 アワード作成サブ 4