2011-11-18 38 views
0

我在尋找如何將選中的複選框保存在包含大量文件夾和子文件夾的樹視圖中。是否可以將它們保存在應用程序設置中?如何在我的應用程序設置中保存複選框'在樹形視圖中檢查?

+0

是的,這是可能的,但它聽起來不像這些是「應用程序設置」。如果您要保存大量的文件夾和子文件夾信息,最好將這些信息保存在您自己的AppData文件夾中的XML文件中。 – LarsTech

+0

@LarsTech 好的,但怎麼做? – user1047402

回答

0

可以存儲Dictionary(Of String, Boolean)和使用每個樹節點的獨特Name(或FullPath)物業:

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值或路徑)。

+0

感謝您的解釋。然而,我有一個錯誤ArgumentException:已添加具有相同鍵的元素。 (請原諒我的翻譯,但我是法語的,不確定我在這裏完成的翻譯。在這行上的錯誤:d.Add(node.Name,node.Checked) – user1047402

+0

@ user1047402:Si vous changez'node .Name'à'node.FullPath'çafonctionnera probablement。 – Ryan

+0

merci,effectivement,çamarche maintenant。j'en profite pour vous demander si vous savez comment faire pour enregistre unebibliothèquedans les settings de mon application?l'idée:je suis en train d'écrireun petit program pour sauvegarder tous mes emails Outlook 2010 comme fichier .MSG; Leproblèmed'arriveràsélectionnercertains dossiers Outlook(ce que je faisàtravers un treeview),et d'en ignorer certains autres Je cherche une solution pour pour boucler parmi uniquement ces dossiers pour lancer mes sauvegardes。謝謝。 – user1047402

相關問題