带checkbox的treeview父子节点的联动选择

转载 2013年12月06日 10:28:02

从网上找来,感觉还可以。方便使用。

private void treeView1_AfterCheck(object sender, TreeViewEventArgs e)
        {
            if (e.Action != TreeViewAction.Unknown) {
                UpdateCheckStatus(e);
            }
        }

        private void UpdateCheckStatus(TreeViewEventArgs e) {
            CheckAllChildNodes(e.Node);
            UpdateAllParentNodes(e.Node);
        }

        private void UpdateAllParentNodes(TreeNode treeNode) {
            TreeNode parent = treeNode.Parent;
            if (parent != null) {
                if (parent.Checked && !treeNode.Checked) {
                    parent.Checked = false;
                    UpdateAllParentNodes(parent);
                }
                else if (!parent.Checked && treeNode.Checked) {
                    bool all = true;
                    foreach (TreeNode node in parent.Nodes) {
                        if (!node.Checked) {
                            all = false;
                            break;
                        }
                    }
                    if (all) {
                        parent.Checked = true;
                        UpdateAllParentNodes(parent);
                    }
                }
            }
        }

        private void CheckAllChildNodes(TreeNode treeNode) {
            foreach (TreeNode node in treeNode.Nodes) {
                node.Checked = treeNode.Checked;
                if (node.Nodes.Count > 0) {
                    this.CheckAllChildNodes(node);
                }
            }
        }


相关文章推荐

TreeView CheckBox勾选联动

在C# Winform项目中用到了TreeView控件,并且需要勾选的功能,父子节点联动,需要实现如下:      1.当选中父节点的时候,如果它的子节点有没有选中的,则选中。      ...

带 checkBox 多选框的 Treeview 控件

{ *********************************************************************** }{                        ...
  • dingrj
  • dingrj
  • 2006年03月09日 21:05
  • 3305

根据数据的父子关系创建树形结构并实现遍历

数据字典的树形结构

ASP.NET Treeview控件中对Checkbox的联级选择

/************************************************************************** ASP.NET 2.0 TreeView...

bootstrap-Treeview实现级联勾选

bootstrap-treeview插件默认不支持级联勾选的,想要实现那就要自己动手了

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

Qt树形控件QTreeView使用2——复选框的设置

通过QStandardItem和QStandardItemModel可以很简单方便的给QTreeView添加节点,但是,许多树形控件都需要树的节点需要一个复选框(checkBox),网上许多资料都是通...
  • czyt1988
  • czyt1988
  • 2014年02月13日 20:24
  • 14708

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

TreeView的子节点和父节点级联选中

TreeView的子节点和父节点级联选中 参考:(TreeView的子节点和父节点级联选中)http://blog.sina.com.cn/s/blog_56616d970100c483.htm...

jquery实现复选框联动

input1 input2 input3 input4 $('input[type="checkbox"]').click(function(){ // 获取当前复选框在所有复选...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:带checkbox的treeview父子节点的联动选择
举报原因:
原因补充:

(最多只允许输入30个字)