列出TreeView中所有已检查的iems但排除man节点

时间:2016-11-26 11:16:44

标签: c# winforms treeview

如何获取所有选中的项目但是要用子项目排除主节点?

例如,看看这张图片:

enter image description here

我希望获得所有选中的项目,但要将marekd排除在黄色之外,但仍然要列出其子项目。

到目前为止,我做到了这一点:

xmlhttp.send("orderID="+orderID);

2 个答案:

答案 0 :(得分:1)

您可以使用Descendants扩展程序获取{% macro render_field(field) %} <dt>{{ field.label }} <dd>{{ field(**kwargs)|safe }} {% if field.errors %} <ul class=errors> {% for error in field.errors %} <li>{{ error }}</li> {% endfor %} </ul> {% endif %} </dd> {% endmacro %} TreeView的后代。然后在获取节点之后,可以使用where子句来过滤那些具有子节点的节点:

TreeNode

有关详细信息,请参阅以下帖子:

答案 1 :(得分:1)

一个简单的递归应该像这样做(只是草图,未经测试):

void Main()
{
   var startingNode = <root/first node of the treeview>;
   var aResult = new List<String>();

   CheckedNames(startingNode, aResult);
}

void CheckedNames(TreeNode node, List<String> result)
{
   do
   {
      if (node.FirstNode != null)
      {
         CheckedNames(node.FirstNode, result);
      }
      else
      {
         if (node.Checked)
         {
            // use your regex here
            result.Add(node.Text);
         }
      }

      node = node.NextNode;
   } while (node != null);
}

希望它有所帮助。