Получить все выбранные узлы компонентов 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;
}