DevExpress获取节点下可视区域子节点集合的实现方法

所属分类: 软件编程 / C#教程 阅读数: 67
收藏 0 赞 0 分享

递归获取节点是很多程序项目中常见的技巧。本文就以实例展示了DevExpress获取节点下可视区域子节点集合的实现方法。分享给大家供参考之用,具体方法如下:

关键部分代码如下:

/// <summary>
/// 向下递归TreeListNode节点
/// </summary>
/// <param name="node">需要向下递归的节点</param>
/// <param name="conditionHanlder">委托</param>
public static void DownRecursiveNode(this TreeListNode node, Action<TreeListNode> conditionHanlder)
{
  foreach (TreeListNode _childNode in node.Nodes)
  {
 conditionHanlder(_childNode);
 DownRecursiveNode(_childNode, conditionHanlder);
  }
}
/// <summary>
/// 获取节点下可视区域子节点集合
/// </summary>
/// <param name="node">需要获取可见子节点的节点</param>
/// <param name="conditonHanlder">条件委托</param>
/// <returns>可见子节点集合</returns>
public static List<TreeListNode> GetVisibleChildNodes(this TreeListNode node, Predicate<TreeListNode> conditonHanlder)
{
  List<TreeListNode> _visibleChildNodes = new List<TreeListNode>();
  TreeList _tree = node.TreeList;
  DownRecursiveNode(node, n =>
  {
 RowInfo _rowInfo = _tree.ViewInfo.RowsInfo[n];
 if (_rowInfo != null)
 {
   if (conditonHanlder(n))
   {
 _visibleChildNodes.Add(n);
   }
 }
  });
  return _visibleChildNodes;
}
/// <summary>
/// 获取节点下可视区域子节点集合
/// </summary>
/// <param name="node">需要获取可见子节点的节点</param>
/// <returns>可见子节点集合</returns>
public static List<TreeListNode> GetVisibleChildNodes(this TreeListNode node)
{
  return GetVisibleChildNodes(node, n => 1 == 1);
}

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

更多精彩内容其他人还在看

C# SendInput 模拟鼠标操作的实现方法

C# SendInput 模拟鼠标操作的实现方法,需要的朋友可以参考一下
收藏 0 赞 0 分享

C#中 paint()与Onpaint()的区别

paint是事件onpaint方法onpaint方法是调用paint事件的,用哪一个,效果是一样,就看那一个方便了内部是这样实现的:
收藏 0 赞 0 分享

c#中GetType()与Typeof()的区别

c#中GetType()与Typeof()的区别,需要的朋友可以参考一下
收藏 0 赞 0 分享

将字符串转换成System.Drawing.Color类型的方法

将字符串转换成System.Drawing.Color类型的方法,需要的朋友可以参考一下
收藏 0 赞 0 分享

C# 抓取网页内容的方法

C# 抓取网页内容的方法,需要的朋友可以参考一下
收藏 0 赞 0 分享

基于C#后台调用跨域MVC服务及带Cookie验证的实现

本篇文章介绍了,基于C#后台调用跨域MVC服务及带Cookie验证的实现。需要的朋友参考下
收藏 0 赞 0 分享

使用C#获取远程图片 Form用户名与密码Authorization认证的实现

本篇文章介绍了,使用C#获取远程图片 Form用户名与密码Authorization认证的实现。需要的朋友参考下
收藏 0 赞 0 分享

Winform跨线程操作的简单方法

线程间操作无效:从不是创建控件“label1”的线程访问它
收藏 0 赞 0 分享

C# WINFORM 强制让窗体获得焦点的方法代码

C# WINFORM 强制让窗体获得焦点的方法代码,需要的朋友可以参考一下
收藏 0 赞 0 分享

C#中方括号[]的语法及作用介绍

C#中方括号[]可用于数组,索引、属性,更重要的是用于外部DLL类库的引用。
收藏 0 赞 0 分享
查看更多