【问题标题】:How can i conver treeView1 selectednodes collection to List<string>?如何将 treeView1 selectednode 集合转换为 List<string>?
【发布时间】:2014-12-25 08:13:59
【问题描述】:

这是我尝试过的:

List<string> filestodownload = new List<string>(treeViewMS1.SelectedNodes);

这不起作用。 treeViewMS1 就像一个常规的 treeView 控件,但具有多节点选择选项。 问题是如何遍历选定节点并将每个节点的文本属性添加到列表中?

【问题讨论】:

    标签: c# .net winforms treeview


    【解决方案1】:

    如果要深入搜索已检查的节点,请添加递归方法。

    private void GetNodesText(TreeNodeCollection tnc, List<string> selectednodes)
    {
        foreach (TreeNode node in tnc)
        {
            if (node.Nodes.Count > 0)
                GetNodesText(node.Nodes, selectednodes);
            if (node.Checked)
                selectednodes.Add(node.Text);
        }
    }
    

    然后调用那个方法:

    var selectednodes = new List<string>();
    GetNodesText(treeView1.Nodes, selectednodes);
    

    【讨论】:

    • 看起来不错,尽管我更愿意反转添加和递归以在列表中获取 父节点之前的子节点..
    【解决方案2】:
    if (treeViewMS1.CheckedNodes.Count > 0)
    {
        List<string> _selectednodes = new List<string>();
        foreach (TreeNode node in treeViewMS1.CheckedNodes)
        {
            if(node.Parent != null)
            {
                string checkedValue = node.Text.ToString();
                _selectednodes.Add(checkedValue);
            }
        }
    
    }
    

    【讨论】:

      猜你喜欢
      • 2018-06-29
      • 2011-06-27
      • 2013-08-26
      • 2020-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多