如何在c#的afterSelect事件中展开TreeNode

本文关键字:TreeNode 事件 afterSelect | 更新日期: 2023-09-27 18:09:05

afterSelect事件中,我想展开treeNode以获得其子事件。我尝试了expand()expandAll()函数,但没有发生任何事情。我正在使用c#与syncfusion。

事件:

void tvNavigation_AfterSelect(object sender, EventArgs e)
{
    var selNode = mFP.TreeViewPresenter.SelectedNode.Text;
    if (treeViewElements.Count > 0)
    {
        foreach (TreeNodeAdv tna in treeViewElements)
        {
            if (selNode == tna.Text)
            {
                tna.ExpandAll(); //does not expand
                var expNodes = (ArrayList)tna.Nodes.Clone();
                subTreeViewElements = expNodes.Cast<TreeNodeAdv>().ToList();
                break;
             }
         }
     }
}

这是syncfusion的bug吗?

如何在c#的afterSelect事件中展开TreeNode

Expand()和ExpandAll()函数工作正常。请在迭代时检查您的节点集合是否包含TreeNodeAdv文本。我已经准备了一个样品供你参考,可以从下面的位置下载。

可以使用下面的代码片段遍历TreeViewAdv中的所有节点。

IEnumerable Collect(TreeNodeAdvCollection节点){foreach (TreeNodeAdv节点中的节点){Yield return节点;

            foreach (var child in Collect(node.Nodes))
                yield return child;
        }
    }

示例位置:https://onedrive.live.com/redir?resid=7FCA130657D0D73E!135&authkey=!AH4aFdd3ZTd6T4c&ithint=file%2czip