我确实需要以编程方式单击集合中的所有节点,但我看不到如何操作。我最终尝试调用 Node_Click 事件,但我不知道如何使用参数。
foreach (TreeNode node in treeView1.Nodes)
{
//here I would need to "click" on each node
}
编辑: 我需要提高 TreeNode_After 选择。这是因为 TreeView 代表数据库结构,如果您单击节点,它可能有也可能没有 child (取决于数据库检索的内容)。此循环应作为 ExpandAll。
最佳答案
要使树中的每个节点都被选中,请执行以下操作:
void SelectAllNodes(TreeNodeCollection tnc)
{
foreach(TreeNode t in tnc)
{
treeView1.SelectedNode = t;
SelectAllNodes(t.Nodes);
}
}
编辑:
还值得注意的是您的代码:
foreach (TreeNode node in treeView1.Nodes)
{
//here I would need to "click" on each node
}
不会在树中的每个节点上触发,它只会返回最上层的节点。因此,如果它们中的任何一个有子节点,它们将不会被上面的 foreach 看到。如果您想获得整棵树中的每个节点,您将需要递归遍历它们,就像我在上面的示例中所做的那样。
关于c# - 以编程方式单击 TreeView 中的节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1650429/