首页 > 编程 > C# > 正文

C#中TreeView实现适合两级节点的选中节点方法

2019-10-29 21:38:19
字体:
来源:转载
供稿:网友

这篇文章主要介绍了C#中TreeView实现适合两级节点的选中节点方法,实例分析了C#中TreeView节点操作的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下

本文实例讲述了C#中TreeView实现适合两级节点的选中节点方法。分享给大家供大家参考。具体如下:

 

 
  1. class TreeViewChecked 
  2. bool isfirst = true
  3. public TreeViewChecked(TreeView treeView) 
  4. treeView.AfterCheck += new TreeViewEventHandler(treeView_AfterCheck); 
  5. treeView.AfterSelect += new TreeViewEventHandler(treeView_AfterSelect); 
  6. /// <summary> 
  7. /// 点击文字,选中checkbox 
  8. /// </summary> 
  9. /// <param name="sender"></param> 
  10. /// <param name="e"></param> 
  11. void treeView_AfterSelect(object sender, TreeViewEventArgs e) 
  12. if (e.Node.Checked) 
  13. e.Node.Checked = false
  14. else 
  15. e.Node.Checked = true
  16. if (isfirst) 
  17. isfirst = false
  18. e.Node.TreeView.Nodes[0].Checked = false
  19. /// <summary> 
  20. /// 选中子节点,勾选父节点,选中父节点,勾选子节点 
  21. /// </summary> 
  22. /// <param name="sender"></param> 
  23. /// <param name="e"></param> 
  24. void treeView_AfterCheck(object sender, TreeViewEventArgs e) 
  25. CheckTreeNode(e.Node); 
  26. /// <summary> 
  27. /// 选中子节点,勾选父节点,选中父节点,勾选子节点 
  28. /// </summary> 
  29. /// <param name="node"></param> 
  30. private void CheckTreeNode(TreeNode node) 
  31. node.TreeView.AfterCheck -= new TreeViewEventHandler(treeView_AfterCheck); 
  32. //如果不等于null,说明选择的是子节点 
  33. if (node.Parent != null
  34. TreeNode parent = node.Parent as TreeNode; 
  35. //如果该节点是选中的 
  36. if (node.Checked) 
  37. //判断其父节点是否被选中,如果没有被选中则选中它 
  38. if (parent.Checked == false
  39. parent.Checked = true
  40. else 
  41. bool ischecked = false
  42. foreach (TreeNode child in parent.Nodes) 
  43. if (child.Checked) 
  44. ischecked = true
  45. break
  46. if (ischecked) 
  47. parent.Checked = true
  48. else 
  49. parent.Checked = false
  50. }//如果等于null,说明选择的是根节点 
  51. else 
  52. foreach (TreeNode child in node.Nodes) 
  53. child.Checked = node.Checked; 
  54. node.TreeView.AfterCheck += new TreeViewEventHandler(treeView_AfterCheck); 

希望本文所述对大家的C#程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表