Jean Jean - 2 months ago 9
C# Question

How to Iterate through all nodes of a treeView Control. C#

I am selecting all controls I have in a

form


if controls are
Treeviews
, I'll iterate all nodes they have

I need something like:
(And it is my code)

foreach (Control c in PanelSM.Controls)
{
if (c is TreeView)
{
TreeNodeCollection myNodes = c.Nodes;//<<<<< Here is a mistake
foreach (TreeNode n in myNodes)
{
String text = rm.GetString(n.Name);
//And more things
//...
//...
//...
}
}
//...
}


Any idea?

Thank You

Answer

Your mistake is that c is actually a variable of type Control, which does not have a Nodes member. You will need it to cast it as a TreeView type.

You can do either of these two approaches:

if (c is TreeView) 
{
    TreeNodeCollection myNodes = ((TreeView) c).Nodes; // <<--- Note the cast
    ...
}

or

TreeView tv = c as TreeView;
if (tv != null)
{
        TreeNodeCollection myNodes = tv.Nodes;
        ...
}
Comments