如何在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吗?
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