如何在c# windows 窗体中select TreeView 中的子节点
How to select the child node in TreeView in c# windows form
我的 windows 表单中有一个树视图。我使用以下函数 select 该 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);
}
}
但是上面的函数只能select树视图中的父节点,我想select并突出显示子节点。
任何人都可以指导我需要更改什么才能使其正常工作吗?
TreeView.Nodes 只会给你父节点。您可能必须实施 ParentNode.ChildNode 才能在树中获取子节点。单击 here 了解更多信息
foreach (TreeNode tn in treeView1.Nodes)
{
// get parent node here
foreach (TreeNode child in tn.Nodes)
{
//get child node here
}
}
我的 windows 表单中有一个树视图。我使用以下函数 select 该 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);
}
}
但是上面的函数只能select树视图中的父节点,我想select并突出显示子节点。 任何人都可以指导我需要更改什么才能使其正常工作吗?
TreeView.Nodes 只会给你父节点。您可能必须实施 ParentNode.ChildNode 才能在树中获取子节点。单击 here 了解更多信息
foreach (TreeNode tn in treeView1.Nodes)
{
// get parent node here
foreach (TreeNode child in tn.Nodes)
{
//get child node here
}
}