树勾选

        /// <summary>
/// 树勾选
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void tvCourse_AfterCheck(object sender, TreeViewEventArgs e)
{
if (e.Action ==TreeViewAction.ByMouse)
{
if (e.Node.Checked)
{
SetChildNode(e.Node, true);
if (null!= e.Node.Parent)
{
SetParentNode(e.Node, true);
}
}
else
{
//取消节点选中状态之后,取消所有父节点的选中状态
SetChildNode(e.Node, false);
//如果节点存在父节点,取消父节点的选中状态
if (e.Node.Parent != null)
{
SetParentNode(e.Node, false);
}
}
}
}
/// <summary>
/// 设置父节点
/// </summary>
/// <param name="node">当前节点</param>
/// <param name="state">状态</param>
private void SetParentNode(TreeNode node, bool state)
{
TreeNode pNode = node.Parent;
if (null != pNode)
{
pNode.Checked = state;
bool flag = false;
foreach (TreeNode currNode in pNode.Nodes)
{
if (!currNode.Checked) //控制父节点全选,父节点选中去掉!
{
flag = false;
pNode.Checked = flag;
break;
}
//SetParentNode(item, state);
}
SetParentNode(pNode, flag); }
}
/// <summary>
/// 设置子节点
/// </summary>
/// <param name="node">当前节点</param>
/// <param name="state">状态</param>
private void SetChildNode(TreeNode node, bool state)
{
TreeNodeCollection tncNodes = node.Nodes;
if (tncNodes.Count>)
{
foreach (TreeNode currNode in tncNodes)
{
currNode.Checked = state;
SetChildNode(currNode, state);
}
}
}

winfrom 树勾选的更多相关文章

  1. winfrom C#树勾选等

    AfterCheck /// <summary> /// 树勾选 /// </summary> /// <param name="sender"> ...

  2. Ext.js中树勾选的四种操作

    最近在做控件优化的时候产品提了一个需求,对树的勾选要满足四种勾选方案: 1.点击一次根节点,当根节点和子节点均未选中的情况下,根节点和子节点全都选中. 2.第二次点击根节点,当根节点和部分或全部子节点 ...

  3. Ext树控件第一次勾选父节点子节点没选中

    项目中同事提出了这样一个bug 问题: 第一次勾选父节点子节点竟然没选中,逆天了啊 初步分析: 可能是之前代码的逻辑错误造成的,随进入调试阶段... 调试中发现该参数为空(原来写代码的也太没素质了), ...

  4. Extjs改变树节点的勾选状态

    Extjs改变树节点的勾选状态 今天系统中有处地方需要一个功能点击一个按钮后将树节点前的复选框去掉,变成没有选择的状态.网上搜索了半天,然后自己查查API,终于找到解决办法了,下面把方法贴出来. 在E ...

  5. ztree学习---将默认勾选的展开

    这里只给出前台页面上的代码,数据可以从后台获取,注意,在封装数据的时候,注意:Id(节点的id,可以是数字也可以是字符串) , pid(父亲节点的id) , name(节点名称)不能少 . html页 ...

  6. 解决jquery操作checkbox全选全不选无法勾选问题

    最近在学习中使用jquery操作checkbox,使用下面方法进行全选.反选:$("input[name='checkbox']").attr("checked" ...

  7. 使用递归方法遍历TreeView的节点如配置则勾选

    自己在网上找了一段时间都没有找到取自数据库的值与TreeView中的节点值进行对比如匹配则勾选中CheckBox的资料,后面自己写了一个递归方法实现,现在记录起来以备需要时使用.在没写这递归方法前如果 ...

  8. Unity关于脚本前面的勾选框

    今天做项目时需要在某个事件条件下禁用某个脚本,但是突然发现这个脚本前面没有勾选框,,,就像这样 网上搜了下,原来是需要在脚本中加上void Start()方法,即使这个方法里什么都没有 void St ...

  9. zTree默认勾选指定ID并执行事件

    try { var arrs = $('#subjectClassID').val().split(","); var treeObj = $.fn.zTree.getZTreeO ...

随机推荐

  1. ubuntu14.04,安装docker(源代码管理工具)

    一,安装docker: 1,安装curl:在shell中执行:sudo apt-get install curl 2,shell中执行:curl -sSL https://get.daocloud.i ...

  2. storm集群快速搭建

    sudo mkdir /export/serverssudo chmod -R 777 /exportmkdir /export/servers tar -zxvf apache-storm-1.0. ...

  3. python-输入

    1. python2版本中 咱们在银行ATM机器前取钱时,肯定需要输入密码,对不? 那么怎样才能让程序知道咱们刚刚输入的是什么呢?? 大家应该知道了,如果要完成ATM机取钱这件事情,需要先从键盘中输入 ...

  4. 自定义Cell的流程

    1..h文件 // // 文 件 名:CHBackupGateWayCell.h // // 版权所有:Copyright © 2018 lelight. All rights reserved. / ...

  5. 引用面试官文章 :如何准备Java初级和高级的技术面试

    本人最近几年一直在做java后端方面的技术面试官,而在最近两周,又密集了面试了一些java初级和高级开发的候选人,在面试过程中,我自认为比较慎重,遇到问题回答不好的候选人,我总会再三从不同方面提问,只 ...

  6. Ping命令简单报错介绍

    了解ABC类IP地址:网络.主机.子网.广播. ---------------------------- 学会ping: ping www.baidu.com 网络检测:ping某一主机可以正常启动! ...

  7. Windows NLB搭配IIS的ARR搭建高可用环境(转载)

    原文地址:http://www.cnblogs.com/shanyou/archive/2010/04/28/1723276.html 在现行的许多网络应用中,有时一台服务器往往不能满足客户端的要求, ...

  8. 使用@符号让C#中的保留字做变量名的方法详解

    原来还有一种办法就是加@符号(看了@符号的作用又多了一个): 复制代码代码如下: class @int    {        static void Main(string[] args)      ...

  9. Idea中文输入问题2

    Desc: win10 idea2017版本+jdk1.9 输入中文无法光标跟随 解决过程: 网上的各种三大类型教程(1)删除jre64(2)删除jre64,然后复制jdk的jre到idea目录,最后 ...

  10. 190320运算符&数据类型

    一.运算符 1.算术运算符 + 加 - 减 * 乘 / 除 ** 平方 // 整除 % 取余 2.比较运算符 == 等于 > 大于 < 小于 <= 小于等于 >= 大于等于 ! ...