而不是寫出有沒有辦法顯示或列出子控件的所有父容器?
var parentContainer0 = this.Parent;
var parentContainer1 = parentContainer0.Parent;
var parentContainer2 = parentContainer1.Parent;
有沒有更好的辦法來列出父容器的所有層?
而不是寫出有沒有辦法顯示或列出子控件的所有父容器?
var parentContainer0 = this.Parent;
var parentContainer1 = parentContainer0.Parent;
var parentContainer2 = parentContainer1.Parent;
有沒有更好的辦法來列出父容器的所有層?
要獲得所有祖先的序列,你可以寫一個迭代器塊很容易地計算它:如果你想在第N代的家長,您可以在此順序使用ElementAt
public static IEnumerable<Control> GetAncestors (Control control)
{
var current = control.Parent;
while (current != null)
{
yield return current;
current = current.Parent;
}
}
,使用LINQ:
var grandparent = someControl.ElementAt(2);
List<Control> layers = new List<Control>();
Control currentLayer = this.Parent;
while (currentLayer != null)
{
layers.Add(currentLayer);
currentLayer = currentLayer.Parent;
}
破碎的代碼:將添加到列表:( –
@SriramSakthivel,很明顯,只是想寫這個概念;) –
你的3個變量指向同一個對象。這沒有意義。 –
感謝您的接受,我已經糾正它。 – Ernest