【Dev TreeList】顺序遍历树节点

如树形结构:
 
比如"新增行3.2"这个节点:
PreNode是新增行3.1
NextNode没有的
也就是说PreNode、NextNode针对同级别的还是有点用的,但是有不同级别还是不行的。
 
处理思路:
 
#region 根据界面树结构, 构造顺序的List
/// <summary>
///根据界面的树形结构节点,生成顺序的节点List
///把TreeList转成List<TreeListNode>,然后顺序遍历TreeListNode
///</summary>
///<returns></returns>
private List<TreeListNode> getTreeListNodeWithSort()
{
    List<TreeListNode> nodeList = new List<TreeListNode>();
    for (int i = 0; i < m_dgv.Nodes.Count; i++)
    {
       nodeList.Add(m_dgv.Nodes[i]);
       TreeListNode node = m_dgv.Nodes[i];
       if (node.Nodes.Count > 0)
       {
           addTreeListNodeWithSort(node, nodeList);
        }
    }
    return nodeList;
}
 
/// <summary>
/// 顺序添加子节点
/// </summary>
private void addTreeListNodeWithSort(TreeListNode _ParentNode, List<TreeListNode> _nodelist)
{
      if (_ParentNode.Nodes.Count > 0)
      {
           for (int i = 0; i < _ParentNode.Nodes.Count; i++)
           {
               ///插入节点
                _nodelist.Add(_ParentNode.Nodes[i]);
                TreeListNode node = _ParentNode.Nodes[i];
                addTreeListNodeWithSort(node, _nodelist);
            }
        }
}
#endregion
 

posted @ 2020-01-15 09:31  黑涩小豆  阅读(1093)  评论(0)    收藏  举报