CSDN=>FAQ=>FAQ 展示
  • 问题内容:winForm中应用带CheckBox的TreeView
  • 原讨论链接:http://community.csdn.net/expert/topicview1.asp?id=5052012
  • 所属论坛:C#     审核组:.NET技术
  • 提问者:dongfang_beback     解决者:Small__Wolf
  • 感谢:Small__Wolf Small__Wolf
  • 关键字:.NET技术 C# 选中 取消 节点 treenode bool 楼主 bol 中子 checkallchildnodes
  • 答案:

    如题;

    1、如何实现当子节点全部选中/取消,则父节点选中/取消

    2、如何实现当父节点选中/取消,则子节点全部选中/取消

    哪位能慷慨相助,最好能有源码实例,先谢谢了!
    ---------------------------------------------------------------

    private void treeView1_AfterCheck(object sender, System.Windows.Forms.TreeViewEventArgs e)
    {
    if(e.Action != TreeViewAction.Unknown)
    {
    CheckAllChildNodes(e.Node,e.Node.Checked);

    //选中父节点
    bool bol=true;
    if(e.Node.Parent !=null)
    {
    for(int i=0;i<e.Node.Parent.Nodes.Count;i++)
    {
    if(!e.Node.Parent.Nodes[i].Checked)
    bol = false;
    }
    e.Node.Parent.Checked = bol;
    }
    }
    }

    //选中子节点
    public void CheckAllChildNodes(TreeNode treeNode, bool nodeChecked)
    {
    foreach(TreeNode node in treeNode.Nodes)
    {
    node.Checked = nodeChecked;
    if(node.Nodes.Count > 0)
    {
    this.CheckAllChildNodes(node, nodeChecked);
    }
    }
    }
    ---------------------------------------------------------------



    1、如何实现当子节点全部选中/取消,则父节点选中/取消



      楼主是想子节点都选中的时候,所有的父节点都选中吗?如果是的话稍微改一下即可


    private void treeView1_AfterCheck(object sender, System.Windows.Forms.TreeViewEventArgs e)
    {
    if(e.Action != TreeViewAction.Unknown)
    {
    CheckAllChildNodes(e.Node,e.Node.Checked);

    //选中父节点
    bool bol=true;
    if(e.Node.Parent !=null)
    {
    for(int i=0;i<e.Node.Parent.Nodes.Count;i++)
    {
    if(!e.Node.Parent.Nodes[i].Checked)
    bol = false;
    }

    TreeNode tn=e.Node;
    while ( tn.Parent != null )
    {
    tn = tn.Parent;
    tn.Checked = bol;
    }
    tn.Checked = bol;
    }
    }
    }

  • 评价: 有价值 给朵鲜花(54) 无价值 扔个鸡蛋(14)
相关FAQ
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
举报电话:13552009689
Copyright © 2000-2009, CSDN.NET, All Rights Reserved
GongshangLogo