標籤:winform style class code ext color
關鍵代碼:
/// <summary> /// 向上遞迴,擷取合格父節點 /// </summary> /// <param name="node">需要向上遞迴的節點</param> /// <param name="conditionHanlder">判斷條件【委託】</param> /// <returns>合格節點【TreeListNode】</returns> public static TreeListNode GetSelfParentNode(this TreeListNode node, Predicate<TreeListNode> conditionHanlder) { TreeListNode _parentNode = node.ParentNode; TreeListNode _conditonNode = null; if (_parentNode != null) { if (conditionHanlder(_parentNode))//判斷上一級父節點是否符合要求 { _conditonNode = _parentNode; } if (_conditonNode == null)//若沒有找到符合要求的節點,遞迴繼續 _conditonNode = GetSelfParentNode(_parentNode, conditionHanlder); } return _conditonNode; }
代碼使用:
TreeListNode _node = e.Node; TreeListNode _condionParent = _node.GetSelfParentNode(n => n.GetNodeType() == NodeType.Cab);//擷取類型為CAB類型的父節點 Trace.WriteLine(_condionParent.GetName());