Получить все выбранные узлы компонентов Dev Элемент управления AdvanceTreeView

В приложении C# Win Forms я использую элементы управления Dev Components Advance TreeView. Узлы древовидного представления имеют флажки для выбора / отмены выбора узла. Я включил множественный выбор узлов в виде дерева. Я хочу, чтобы все выбранные узлы были отмечены или сняты с любого узла. Я попытался использовать свойство "SelectedNodes" древовидной структуры, которое возвращает коллекцию выбранных узлов, но кое-что, как оно всегда возвращает "1" кивок, например последний выбранный узел.

Обновление Проблема с выбором дочерних узлов. Если я выделю все родительские узлы, то получу верный счетчик, но в случае дочерних узлов всегда будет 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;
    }
Другие вопросы по тегам