Selective checkboxes in TreeView

  • Thread starter Thread starter Trevor
  • Start date Start date
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);
}
 
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);
}
}
 
Back
Top