zoukankan      html  css  js  c++  java
  • 递归DeleteMenuItem

    /// <summary>
            /// 删除节点
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            void DeleteMenuItem(object sender, EventArgs e)
            {
                MenuTreeNode curNode = menuTreeView.SelectedNode as MenuTreeNode;
                if (curNode.Nodes.Count > 0)
                    DeleteNodes(curNode);
                else
                {
                    curNode.Record.Delete();
                    curNode.Remove();
                }
    
            }
            /// <summary>
            /// 递归删除节点,特别说明:递归删除节点不能用foreach和for,因为节点删除后,下次迭代目标是null,不过递减方式遍历也许可以
            /// </summary>
            /// <param name="node">待删除的节点</param>
            void DeleteNodes(MenuTreeNode node)
            {
                MenuTreeNode tmpNode = node;
                
                while (tmpNode != null)
                {
                    if (tmpNode.Nodes.Count > 0)
                    {
                        DeleteNodes((MenuTreeNode)tmpNode.Nodes[0]);
                    }
                    MenuTreeNode aNode = tmpNode;
                    tmpNode = (MenuTreeNode)tmpNode.NextNode;
                    aNode.Record.Delete();
                    aNode.Remove();
                 
                }
               
  • 相关阅读:
    Python教程(2.2)——数据类型与变量
    Python教程(2.1)——控制台输入
    Python教程(1.2)——Python交互模式
    (译)割点
    Python教程(1.1)——配置Python环境
    Python教程(0)——介绍
    [HDU1020] Encoding
    [HDU1004] Let the balloon rise
    扩展中国剩余定理 exCRT 学习笔记
    51nod 1943 联通期望 题解【枚举】【二进制】【概率期望】【DP】
  • 原文地址:https://www.cnblogs.com/perock/p/3074442.html
Copyright © 2011-2022 走看看