private void SetNodeCheckStatus(TreeNode tn, bool Checked)
        {            if (tn == null) return;            // Check children nodes            foreach (TreeNode tnChild in tn.Nodes)
            {                tnChild.Checked = Checked;                SetNodeCheckStatus(tnChild, Checked);            }            // Set parent check status            TreeNode tnParent = tn;            int nNodeCount = 0;            while (tnParent.Parent != null)
            {                tnParent = (TreeNode)(tnParent.Parent);                nNodeCount = 0;                foreach (TreeNode tnTemp in tnParent.Nodes)
                {
                    if (tnTemp.Checked == Checked)
                    {
                        nNodeCount++;
                    }
                }
                if (nNodeCount == tnParent.Nodes.Count)
                {
                    tnParent.Checked = Checked;
                }
                else
                {
                    tnParent.Checked = false;
                }
            }        }