A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

这篇文章主要介绍了DevExpress获取节点下可视区域子节点集合的实现方法,是C#程序设计中较为常见的技巧,需要的朋友可以参考下
递归获取节点是很多程序项目中常见的技巧。本文就以实例展示了DevExpress获取节点下可视区域子节点集合的实现方法。分享给大家供参考之用,具体方法如下:
关键部分代码如下:
  1. /// <summary>
  2. /// 向下递归TreeListNode节点
  3. /// </summary>
  4. /// <param name="node">需要向下递归的节点</param>
  5. /// <param name="conditionHanlder">委托</param>
  6. public static void DownRecursiveNode(this TreeListNode node, Action<TreeListNode> conditionHanlder)
  7. {
  8. foreach (TreeListNode _childNode in node.Nodes)
  9. {
  10. conditionHanlder(_childNode);
  11. DownRecursiveNode(_childNode, conditionHanlder);
  12. }
  13. }
  14. /// <summary>
  15. /// 获取节点下可视区域子节点集合
  16. /// </summary>
  17. /// <param name="node">需要获取可见子节点的节点</param>
  18. /// <param name="conditonHanlder">条件委托</param>
  19. /// <returns>可见子节点集合</returns>
  20. public static List<TreeListNode> GetVisibleChildNodes(this TreeListNode node, Predicate<TreeListNode> conditonHanlder)
  21. {
  22. List<TreeListNode> _visibleChildNodes = new List<TreeListNode>();
  23. TreeList _tree = node.TreeList;
  24. DownRecursiveNode(node, n =>
  25. {
  26. RowInfo _rowInfo = _tree.ViewInfo.RowsInfo[n];
  27. if (_rowInfo != null)
  28. {
  29. if (conditonHanlder(n))
  30. {
  31. _visibleChildNodes.Add(n);
  32. }
  33. }
  34. });
  35. return _visibleChildNodes;
  36. }
  37. /// <summary>
  38. /// 获取节点下可视区域子节点集合
  39. /// </summary>
  40. /// <param name="node">需要获取可见子节点的节点</param>
  41. /// <returns>可见子节点集合</returns>
  42. public static List<TreeListNode> GetVisibleChildNodes(this TreeListNode node)
  43. {
  44. return GetVisibleChildNodes(node, n => 1 == 1);
  45. }
复制代码

希望本文所述方法对大家的C#程序设计能有所帮助!

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马