Try this its working fine..
On TreeView After_Check Event :
private void treeView1_AfterCheck(object sender, TreeViewEventArgs e)
{
if (e.Node.Checked)
CheckAllChildNodes(e.Node, true);
else
CheckAllChildNodes(e.Node, false);
}
Check or Uncheck Nodes Function :
private void CheckAllChildNodes(TreeNode treeNode, bool nodeChecked)
{
foreach (TreeNode node in treeNode.Nodes)
{
node.Checked = nodeChecked;
if (node.Nodes.Count > 0)
{
this.CheckAllChildNodes(node, nodeChecked);
}
}
}