Пример #1
0
        }// RemoveSpecificChild

        protected void RemoveSpecificChildByIndex(int nIndex)
        {
            // Have this child remove all his children nodes as well
            ArrayList al = new ArrayList();

            al.Add(CNodeManager.GetNode(Child[nIndex]));
            int i = 0;

            while (i < al.Count)
            {
                // Put all this guy's children in the queue as well
                CNode node = (CNode)al[i];
                for (int j = 0; j < node.NumChildren; j++)
                {
                    al.Add(CNodeManager.GetNode(node.Child[j]));
                }
                i++;
            }

            // Start from the bottom and work our way up
            while (al.Count > 0)
            {
                CNode node = (CNode)al[al.Count - 1];
                // First, close any property pages associated with it
                node.CloseAllMyPropertyPages();

                // Inform MMC of this removal
                CNodeManager.CNamespace.DeleteItem(node.HScopeItem, 1);

                // Remove this node from the list
                CNodeManager.RemoveNode(node.Cookie);
                al.RemoveAt(al.Count - 1);
            }
        }// RemoveSpecificChildByIndex