Вы можете сохранить Dictionary(Of String, Boolean)
и использовать уникальное свойство Name
(или FullPath
) каждого TreeNode:
Dim d As New Dictionary(Of String, Boolean)
Dim stack As New Stack(Of TreeNode)
For Each n As TreeNode In Me.TreeView1.Nodes
stack.Push(n)
Next
While stack.Count > 0
Dim node As TreeNode = stack.Pop()
For Each subNode As TreeNode In node.Nodes
stack.Push(subNode)
Next
d.Add(node.Name, node.Checked)
End While
' Store d in My.Settings or somewhere else
Чтобы восстановить его, просто зациклите словарь и установитеChecked
значения по имени (или пути).