65.9K
CodeProject is changing. Read more.
Home

Select only one node in Treeview

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.75/5 (4 votes)

Aug 19, 2011

CPOL
viewsIcon

45284

Select only one node in Treeview

If you want to check Treeview control's only one node for each root node, you can use this:
private void treeview1_AfterCheck(object sender, TreeViewEventArgs e)
{
    if (e.Node.Checked)
    {
        DiselectParentNodes(e.Node.Parent);
        DiselectChildNodes(e.Node.Nodes);
    }
}

private void DiselectParentNodes(TreeNode parent)
{
    while (parent != null)
    {
        if (parent.Checked)
            parent.Checked = false;
        parent = parent.Parent;
    }
}

private void DiselectChildNodes(TreeNodeCollection childes)
{
    foreach (TreeNode oneChild in childes)
    {
        if (oneChild.Checked)
            oneChild.Checked = false;
        DiselectChildNodes(oneChild.Nodes);
    }
}