LPARAMETERS oNode WITH oNode m_chk = .Checked IF TYPE("oNode.Child") == "O" .AND. .NOT. ISNULL(.Child) .Child.Checked = m_chk IF .Child.Children # 0 this.NodeCheck(.Child) ENDIF n = .Child.Index DO WHILE n # .Child.LastSibling.Index WITH this.oleTree.Nodes(n) && Put the Real Name of the TreeView IF TYPE(".Next") == "O" .AND.; .NOT. ISNULL(.Next) .Next.Checked = m_chk IF .Next.Children # 0 this.NodeCheck(.Next) ENDIF n = .Next.Index ELSE EXIT ENDIF ENDWITH ENDDO ENDIF ENDWITH **** In NodeCheck Event of the TreeView LPARAMETERS node thisform.NodeCheck(node)This select or disselect all the child nodes of the parent node.