c# - 以编程方式单击 TreeView 中的节点?

标签 c# winforms treeview

我确实需要以编程方式单击集合中的所有节点,但我看不到如何操作。我最终尝试调用 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/

相关文章:

c# - WebApi 中自动生成的 EF 代码无法在 Azure 上运行,但在测试时可以在本地运行

c# - "Attempted to read or write protected memory"由 urlmon.dll 引起

c# - 来自 CreateChannelWithIssuedToken 的 WCF channel 仍在发送 'requestsecuritytoken' 请求

c# - 在 WinForms 设计器中显示控件层次结构

php - 当我只有父级的父级文本时如何获取 TreeView 项目的 id

c# - 当我不在 for 循环中使用 ToList 方法时,为什么会失败?

c# - 是否可以根据其值设置组合框的selectedIndex

c# - 使用进程将数据发送到记事本

c# - 窗体 : navigate TreeView in BackgroundWorker thread

asp.net-mvc - 我应该如何为需要在 ASP.NET MVC 中显示的分层数据构建我的 ViewModel?