TreeView 选中/取消选中所有子项 [英] TreeView Check/UnCheck all child items

查看:31
本文介绍了TreeView 选中/取消选中所有子项的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何在 TreeView 中选中/取消选中所有子项?当其中一项变为选中状态并且子项选中/未选中错误时,可能发生错误.

How do i check/uncheck all child items in TreeView? Probably error happened when one of items become to selected state and child items checked/unchecked buggy.

VS 2010 Project+Exe 链接

YOUTUBE 上的视频

private void Form1_Load(object sender, EventArgs e)
    {
        treeView1.CheckBoxes = true;
        treeView1.BeginUpdate();
        treeView1.Nodes.Add("1111");
        treeView1.Nodes[0].Nodes.Add("2222");
        treeView1.Nodes[0].Nodes.Add("2222");
        treeView1.Nodes[0].Nodes.Add("2222");
        treeView1.Nodes[0].Nodes.Add("2222");
        treeView1.Nodes[0].Nodes[1].Nodes.Add("3333");
        treeView1.Nodes[0].Nodes[1].Nodes[0].Nodes.Add("4444");
        treeView1.Nodes[0].Nodes[1].Nodes[0].Nodes.Add("4444");
        treeView1.Nodes[0].Nodes[1].Nodes[0].Nodes.Add("4444");
        treeView1.EndUpdate();

        treeView1.ExpandAll();
    }

    private void treeView1_AfterCheck(object sender, TreeViewEventArgs e)
    {
        treeView1.BeginUpdate();

        foreach (TreeNode Node in e.Node.Nodes)
        {
            Node.Checked = e.Node.Checked;
        }

        treeView1.EndUpdate();
    }

推荐答案

使用您在 Form_Load 中的代码保持代码正常工作,并在您的代码中添加这 2 个方法

using your code that you have in the Form_Load keep that code it works and add these 2 methods in your code

private void Form1_Load(object sender, EventArgs e)
{
    treeView1.CheckBoxes = true;
    treeView1.BeginUpdate();
    treeView1.Nodes.Add("1111");
    treeView1.Nodes[0].Nodes.Add("2222");
    treeView1.Nodes[0].Nodes.Add("2222");
    treeView1.Nodes[0].Nodes.Add("2222");
    treeView1.Nodes[0].Nodes.Add("2222");
    treeView1.Nodes[0].Nodes[1].Nodes.Add("3333");
    treeView1.Nodes[0].Nodes[1].Nodes[0].Nodes.Add("4444");
    treeView1.Nodes[0].Nodes[1].Nodes[0].Nodes.Add("4444");
    treeView1.Nodes[0].Nodes[1].Nodes[0].Nodes.Add("4444");
    treeView1.EndUpdate();
    treeView1.ExpandAll();
}

private void treeView1_AfterCheck(object sender, TreeViewEventArgs e)
{
    foreach (TreeNode childNode in e.Node.Nodes)
    {
        childNode.Checked = e.Node.Checked;
    }
}

这篇关于TreeView 选中/取消选中所有子项的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆