Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Winforms 获取Dev Components AdvanceTreeView控件的所有选定节点_Winforms_Treeview_Devexpress_Multipleselection_Dotnetbar - Fatal编程技术网

Winforms 获取Dev Components AdvanceTreeView控件的所有选定节点

Winforms 获取Dev Components AdvanceTreeView控件的所有选定节点,winforms,treeview,devexpress,multipleselection,dotnetbar,Winforms,Treeview,Devexpress,Multipleselection,Dotnetbar,我在C#Win Forms应用程序中使用Dev Components Advance TreeView控件。树状视图节点具有用于选择/取消选择节点的复选框。我在树状视图中启用了多个节点选择。我想在任何节点的“选中/取消选中”上获取所有选定节点。我尝试使用treeview的“SelectedNodes”属性返回所选节点的集合,但它总是返回“1”节点,例如最后一个所选节点 更新 问题在于子节点的选择。如果我多重选择所有父节点,那么我将获得正确的计数,但对于子节点,计数始终为1 请建议您可以使用一个简

我在C#Win Forms应用程序中使用Dev Components Advance TreeView控件。树状视图节点具有用于选择/取消选择节点的复选框。我在树状视图中启用了多个节点选择。我想在任何节点的“选中/取消选中”上获取所有选定节点。我尝试使用treeview的“SelectedNodes”属性返回所选节点的集合,但它总是返回“1”节点,例如最后一个所选节点

更新 问题在于子节点的选择。如果我多重选择所有父节点,那么我将获得正确的计数,但对于子节点,计数始终为1
请建议您可以使用一个简单的递归函数,只需在此处传递根节点即可。如果不希望递归,请将所选节点列表挂接到事件处理程序中,以进行选中/取消选中

     static public List<HierarchyNode> GetCheckedNodes(HierarchyNode node)
    {
        var nodes = new List<HierarchyNode>();

        foreach (HierarchyNode childNode in node.Nodes)
        {
            nodes.AddRange(GetCheckedNodes(childNode));
        }

        if (node.Checked)
        {
            nodes.Add(node);
        }

        return nodes;
    }
静态公共列表GetCheckedNodes(HierarchyNode节点)
{
var节点=新列表();
foreach(node.Nodes中的HierarchyNode-childNode)
{
AddRange(GetCheckedNodes(childNode));
}
如果(节点已选中)
{
nodes.Add(node);
}
返回节点;
}