/ / Développer / Fermer un arbre de contrôle utilisateur - c #, winforms, arbre, arborescence

Expand / Close arborescence de contrôle utilisateur - c #, winforms, tree, treeview

Le code ci-dessous permet de charger les fichiers XML d'une vue arborescente dans le contrôle utilisateur. D'une certaine manière, je pense que le code pour développer / fermer n'est pas bien codé. Existe-t-il un autre moyen de coder cela sous une forme plus nette?

try{
this.tvTraceSelect.Progress = true;
this.tvTraceSelect.UnitsPath = unitsPath;
this.tvTraceSelect.TracesPath = tracesPath;
this.tvTraceSelect.View = Traces.View.Files;
this.tvTraceSelect.TreeView.CollapseAll();
if (this.tvTraceSelect.TreeView.Nodes.Count > 0)
{
this.tvTraceSelect.TreeView.Nodes[0].Expand();
if (this.tvTraceSelect.TreeView.Nodes[0].Nodes.Count > 0)
{
this.tvTraceSelect.TreeView.Nodes[0].Nodes[0].Expand();
if (this.tvTraceSelect.TreeView.Nodes[0].Nodes[0].Nodes.Count > 0)
{
this.tvTraceSelect.TreeView.Nodes[0].Nodes[0].Nodes[0].Expand();
if (this.tvTraceSelect.TreeView.Nodes[0].Nodes[0].Nodes[0].Nodes.Count > 0)
{
this.tvTraceSelect.TreeView.Nodes[0].Nodes[0].Nodes[0].Nodes[0].Expand();
}
}
}
}
}catch (Exception _excep)
{
MessageBox.Show(this, "An error occured during the initialization of the InitTracesView .nDetails: "
+ _excep.Message + "nn" + _excep.StackTrace, "Initialization error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}

Réponses:

1 pour la réponse № 1
public void ExpandFirst(TreeNodeCollection nodes)
{
if (nodes.Count > 0)
{
nodes[0].Expand();
ExpandFirst(nodes[0].Nodes);
}
}

Appelez ça comme ça:

ExpandFirst(this.tvTraceSelect.TreeView.Nodes)