我在Windows窗体中有一个树状视图。我使用以下函数在该treeView中选择节点。
private void FindAndSelect(TreeNodeCollection collection, object toSelect)
{
//problem in this line becouse while converting the toSelect into IstructuredEntity is showing null.
var entityToSelect = toSelect as Decoupling::IStructureEntity;
if (entityToSelect == null) //just select the Structure root
{
_treeView.SelectedNode = _treeView.Nodes[0];
return;
}
foreach (TreeNode tn in collection)
{
var treeNodeEntity = tn.Tag as IStructureEntity;
if (treeNodeEntity != null && treeNodeEntity.Id == entityToSelect.Id)
{
_treeView.SelectedNode = tn;
}
FindAndSelect(tn.Nodes, toSelect);
}
}
但是上面的功能只能在treeView中选择父节点,而我想选择并突出显示子节点。任何人都可以请我指导我进行此更改之前需要进行哪些更改?
TreeView.Nodes仅会为您提供父节点。您可能必须实现ParentNode.ChildNode才能在树中获取子节点。点击这里了解更多信息
foreach (TreeNode tn in treeView1.Nodes)
{
// get parent node here
foreach (TreeNode child in tn.Nodes)
{
//get child node here
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句