如何扩展Treeview的第一级孩子

zsh*_*arp 10 c# treeview

我希望默认情况下在树视图中显示第一级的所有子级.然后扩展所有点击的孩子.

Lar*_*ech 12

尝试:

foreach (TreeNode tn in treeView1.Nodes) {
  tn.Expand();
}
Run Code Online (Sandbox Code Playgroud)

在运行时添加节点时,您可以检查级别并根据需要进行扩展:

private void ShoudAutoExpand(TreeNode tn) {
  if (tn.Level == 0)
    tn.Expand();
}
Run Code Online (Sandbox Code Playgroud)

没有任何NodeAdded事件中,你可以挂接到自动检查.您必须自己确定是否应该"默认"扩展节点.

更新:

从您的评论中,您似乎希望展开所有0级节点,但在展开时展开级别1的所有子节点.

尝试使用以下代码订阅BeforeExpand事件:

private void treeView1_BeforeExpand(object sender, TreeViewCancelEventArgs e) {
  treeView1.BeforeExpand -= treeView1_BeforeExpand;
  if (e.Node.Level == 1) {
    e.Node.ExpandAll();
  }
  treeView1.BeforeExpand += treeView1_BeforeExpand;
}
Run Code Online (Sandbox Code Playgroud)