"when I unchecked child node i want only unchecked all childnode in treeview."
In other words, you don't want to uncheck parent nodes?
In that case, only call SelectParents() when a node is selected:
private void treeView1_AfterCheck(object sender, TreeViewEventArgs e)
{
if (updatingTreeView) return;
updatingTreeView = true;
CheckChildren_ParentSelected(e.Node, e.Node.Checked);
if (e.Node.Checked)
{
SelectParents(e.Node, e.Node.Checked);
}
updatingTreeView = false;
}