实现目录节点的折叠、隐藏、增加和删除

我们将使用visual studio完成实现目录节点的折叠、隐藏、增加和删除。


创建项目

在visual studio中找到 Windows窗体应用 (.NET Framework)双击创建项目。

点击左侧工具箱,找到treeView,把它拖到应用窗体上。如果左侧没有工具箱,可以在上方菜单栏点击视图,就可以找到工具箱了。

点击treeView,在它右上角有一个三角,点击它,再点击“编辑节点”,就可以给目录添加内容了。如何一次性选择多个目标,在treeView属性中找到Checkbox,把false改为true就行了。当然我们肯定不是这样添加内容,而是通过代码来添加内容。

 

节点的增加和删除

在工具箱中找到button按钮,拖四个button按钮到窗体上。右键button按钮,点击属性,在属性栏中找到Text属性。通过这个属性可以把三个按钮修改按钮名称,并把它们命名为增加、删除、隐藏与展开。

双击增加按钮,进入代码编辑。

将这些代码输入,其中Nodes是控件的根节点,因为本来treeView1控件没有根节点,所以应该先通过Nodes.Add的方法来添加根节点。

删除按钮的操作同上,而代码中try和 catch是用于处理异常的语句,它们构成了一种异常处理机制。在一个 try 语句中,程序执行一段代码,如果发生了异常,则会被捕获,并转到相的 catch 语句中进行处理。try 和 catch 语句用于处理程序运行时可能发生的异常,以保证程序的稳定性和正确性。但是不能一味的删除,还要判断根节点是否存在,当存在子节点时,根节点无法被删除。当删除完时,提示"别删了,再删就没有了"。

节点的展开与折叠

在展开与折叠按钮中,设定一个局部变量x,当x等于0时使节点收缩。反之,就使节点展开

小结

以上思路仅供参考,如有错误,请多多指正。

总体代码

        private void button1_Click(object sender, EventArgs e)
        {
            //控件的根节点Nodes,因为本来treeView1控件没有根节点,所以应该先添加根节点Nodes.Add
            TreeNode td = treeView1.SelectedNode;
            TreeNode newtd = new TreeNode();
            newtd.Text = "新增";
            td.Nodes.Add(newtd);
        }

        private void button2_Click(object sender, EventArgs e)
        {
            try
            {
                if(treeView1.SelectedNode!=null)
         if (treeView1.SelectedNode.Nodes.Count > 0)
            {
                MessageBox.Show("你还有子节点,请删除子节点");
            }
            else
            {
                        //删除节点Nodes,使用Remove
                treeView1.Nodes.Remove(treeView1.SelectedNode);
            }
            }catch(Exception ex){
                MessageBox.Show("别删了,再删就没有了");
            }
   
        }
        int i = 0;
        private void button3_Click(object sender, EventArgs e)
        {
            if (i==0)
            {
                //CollapseAll()收缩节点
                this.treeView1.CollapseAll();//折叠
                i = 1;
            }
            else
            {
                //ExpandAll()展开节点
                this.treeView1.ExpandAll();//展开
                i = 0;
            }
        }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值