Selective checkboxes in TreeView

T

Trevor

How can I recursively loop through _every_ TreeNode in a TreeView using
C#? The CheckBoxes property enables checkboxes for all TreeNodes. I
only want checkboxes on TreeNodes that have 0 child nodes. I don't know
how many levels deep the TreeView will be. I have the checkboxes part
under control but my code only loops through the root nodes of my
TreeView.

// My incorrect code

treeGroups.CheckBoxes = true;
foreach (TreeNode node in treeGroups)
{
if (node.Nodes.Count == 0)
TreeViewEx.AddCheckBoxToNode(node);
else
TreeViewEx.RemoveCheckBoxFromNode(node);
}
 
I

Italo Silveira

Trevor,

Try something like this:

public Form1()
{
//
// Required for Windows Form Designer support
//
InitializeComponent();

foreach( TreeNode node in treeView1.Nodes )
{
SetupTreeView(node);
}
}

private void SetupTreeView(TreeNode parentNode)
{
foreach( TreeNode node in parentNode.Nodes )
{
SetupTreeView(node);

if( node.Nodes.Count == 0 )
TreeViewEx.AddCheckBoxToNode(node);
else
TreeViewEx.RemoveCheckBoxFromNode(node);
}
}
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top