树勾选

  1. /// <summary>
  2. /// 树勾选
  3. /// </summary>
  4. /// <param name="sender"></param>
  5. /// <param name="e"></param>
  6. private void tvCourse_AfterCheck(object sender, TreeViewEventArgs e)
  7. {
  8. if (e.Action ==TreeViewAction.ByMouse)
  9. {
  10. if (e.Node.Checked)
  11. {
  12. SetChildNode(e.Node, true);
  13. if (null!= e.Node.Parent)
  14. {
  15. SetParentNode(e.Node, true);
  16. }
  17. }
  18. else
  19. {
  20. //取消节点选中状态之后,取消所有父节点的选中状态
  21. SetChildNode(e.Node, false);
  22. //如果节点存在父节点,取消父节点的选中状态
  23. if (e.Node.Parent != null)
  24. {
  25. SetParentNode(e.Node, false);
  26. }
  27. }
  28. }
  29. }
  30. /// <summary>
  31. /// 设置父节点
  32. /// </summary>
  33. /// <param name="node">当前节点</param>
  34. /// <param name="state">状态</param>
  35. private void SetParentNode(TreeNode node, bool state)
  36. {
  37. TreeNode pNode = node.Parent;
  38. if (null != pNode)
  39. {
  40. pNode.Checked = state;
  41. bool flag = false;
  42. foreach (TreeNode currNode in pNode.Nodes)
  43. {
  44. if (!currNode.Checked) //控制父节点全选,父节点选中去掉!
  45. {
  46. flag = false;
  47. pNode.Checked = flag;
  48. break;
  49. }
  50. //SetParentNode(item, state);
  51. }
  52. SetParentNode(pNode, flag);
  53.  
  54. }
  55. }
  56. /// <summary>
  57. /// 设置子节点
  58. /// </summary>
  59. /// <param name="node">当前节点</param>
  60. /// <param name="state">状态</param>
  61. private void SetChildNode(TreeNode node, bool state)
  62. {
  63. TreeNodeCollection tncNodes = node.Nodes;
  64. if (tncNodes.Count>)
  65. {
  66. foreach (TreeNode currNode in tncNodes)
  67. {
  68. currNode.Checked = state;
  69. SetChildNode(currNode, state);
  70. }
  71. }
  72. }

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. WebStrom-JS编程小技巧

    快速打印某个名为***的对象:***.log回车效果如下:

  2. IIS发布ASP程序问题汇总

    看异常位置,因为域的问题

  3. underscore里面的debounce与throttle

    throttle 策略的电梯.保证如果电梯第一个人进来后,15秒后准时运送一次,不等待.如果没有人,则待机. debounce 策略的电梯.如果电梯里有人进来,等待15秒.如果又人进来,15秒等待重新 ...

  4. http2.2使用ajp与tomcat集成

    环境 1.CENTOS 6.5 2.yun安装的httpd,版本是2.2 3.tomcat版本8.5.28 操作 关闭8080端口连接,打开8009端口修改tomcat_home/conf/serve ...

  5. 【离散数学】 SDUT OJ 哪款赛车最佳?

    哪款赛车最佳? Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Problem Description 四名专家对四款赛车进行 ...

  6. SQL中删除重复的行(重复数据),只保留一行 转

    方法一:使用在T-SQL的编程中 分配一个列号码,以COL1,COL2组合来分区排序,删除DATABASE重复的行(重复数据),只保留一行 // COL1,COL2是数据库DATABASE的栏位 de ...

  7. python怎样在一行中捕获多个异常

    所属网站分类: python基础 > 异常处理 作者:浮沉 链接:http://www.pythonheidong.com/blog/article/71/ 来源:python黑洞网,专注pyt ...

  8. JavaWeb学习笔记(五)—— request

    一.request概述 request是Servlet.service()方法的一个参数,类型为javax.servlet.http.HttpServletRequest.在客户端发出每个请求时,服务 ...

  9. Spring学习笔记(六)—— SSH整合

    一.整合原理 二.整合步骤 2.1 导包 [hibernate] hibernate/lib/required hibernate/lib/jpa 数据库驱动 [struts2] struts-bla ...

  10. ICEM二维网格

    非结构网格 结构网格 拓扑 拓扑完建立part边界条件,然后创建block 拓扑完后进行边界条件关联 全局网格设置