【问题标题】:How to save in my Application Settings the Checkbox' Checked in a Treeview?如何在我的应用程序设置中保存在树视图中选中的复选框?
【发布时间】:2012-01-01 07:51:42
【问题描述】:

我正在寻找如何将选中的复选框保存在包含大量文件夹和子文件夹的树视图中。是否可以将它们保存在应用程序设置中?

【问题讨论】:

  • 是的,这是可能的,但听起来不像是“应用程序设置”。如果您要保存大量文件夹和子文件夹信息,最好将这些信息保存在 AppData 文件夹中您自己的 XML 文件中。
  • @LarsTech 好的,但是怎么做呢?

标签: vb.net checkbox treeview application-settings


【解决方案1】:

您可以存储 Dictionary(Of String, Boolean) 并使用每个 TreeNode 的唯一 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 值。

【讨论】:

  • 感谢您的解释。但是,我有一个错误 ArgumentException :添加了具有相同键的元素。 (对不起翻译,但我是法国人,不确定我在这里所做的翻译。此行错误:d.Add(node.Name, node.Checked)
  • @user1047402: Si vous changez node.Name à node.FullPath ça fonctionnera problement.
  • 谢谢,效果,ca Marche 维护者。 j'en Profite pour vous demander si vous savez comment faire pour enregistre une bibliothèque dans les settings de mon application ? l'idée : je suis en train d'écrire un petit program pour sauvegarder tous me emails Outlook 2010 comme fichier .MSG ; Le problème étant d'arriver à sélectionner certains dossiers Outlook (ce que je fais à travers un treeview), et d'en ignorer certains autres。 Je cherche une solution pour boucler parmi uniquement ces dossiers pour lancer mes sauvegardes。谢谢。
猜你喜欢
  • 2017-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多