Versuchen
foreach (TreeNode n in e.Node.Parent.Nodes)
Sie könnten für eine Null-Eltern überprüfen und
TreeNodeCollection nodes;
if(e.Node.Parent != null)
{
nodes = e.Node.Parent.Nodes;
}
else
{
nodes = e.Node.TreeView.Nodes;
}
Diese verwenden sollte die Breite ersten Algorithmus decken (sorry ich habe es nicht getestet)
Queue<TreeNode> currentLevel = new Queue<TreeNode>(nodes);
Queue<TreeNode> nextLevel = new Queue<TreeNode>();
while(currentLevel.Count > 0)
{
while(currentLevel.Count > 0)
{
TreeNode n = currentLevel.Dequeue();
// Add child items to next level
foreach(TreeNode child in n.Nodes)
{
nextLevel.Enqueue(child);
}
}
// Switch to next level
currentLevel = nextLevel;
nextLevel = new Queue<TreeNode>();
}