C# 在treeview中扩展一个特殊节点
我有一个treeview节点,我只想扩展一个特殊节点。我知道通过编写C# 在treeview中扩展一个特殊节点,c#,.net,winforms,treeview,treenode,C#,.net,Winforms,Treeview,Treenode,我有一个treeview节点,我只想扩展一个特殊节点。我知道通过编写treeView1.ExpandAll()它将扩展所有节点和子节点。但我的意思是这样的: 我也尝试过写这个命令,但它在树中没有影响(!): 这是因为您的最后一个节点可能是树中真正的最后一个节点——在“maniplieren(data)”下面没有文本的节点。 您需要的是treeview节点集合的Find方法 treeview.Nodes.Find(“keyofnode”,包括孩子) 其中,includeChildren告诉该方法
treeView1.ExpandAll()
它将扩展所有节点和子节点。但我的意思是这样的:
我也尝试过写这个命令,但它在树中没有影响(!):
这是因为您的最后一个节点可能是树中真正的最后一个节点——在“maniplieren(data)”下面没有文本的节点。 您需要的是treeview节点集合的
Find
方法
treeview.Nodes.Find(“keyofnode”,包括孩子)
其中,includeChildren
告诉该方法是只搜索顶级还是包括子节点
但是:您需要添加带有键值的节点!像这样:
treeview.Nodes.Add(“keyofNode”、“textofNode”)
请记住:
Find(字符串键,bool searchAllChildren)
返回树节点数组。首先,确保操作正确的节点。在您的示例中,treeView1.Nodes.Count
是1(根节点),所以
转化为
TreeNode lastNode = treeView1.Nodes[0].Nodes[0];
这不是你的意图
节点“操作”可以通过
TreeNode lastNode = treeView1.Nodes[0].LastNode;
其次,如果某些父节点未展开,则调用Expand
是不够的。你需要包括这样的电话
lastNode.Expand();
lastNode.EnsureVisible();
或者像这样手动展开节点及其所有父节点(也可以创建函数)
谢谢你的回答。但是我认为
TreeNode lastNode=treeView1.Nodes[0].Nodes[treeView1.Nodes.Count-1]代码>指的是“操作”而不是“Manipulieren(数据)”。对吗?非常感谢。我没有注意到。这是一个巧妙的说法。
TreeNode lastNode = treeView1.Nodes[0].LastNode;
lastNode.Expand();
lastNode.EnsureVisible();
for (var node = lastNode; node != null; node = node.Parent)
node.Expand();