0
有沒有一些可以幫助的靜態方法?從給定的控件找到所有後代控件,無需顯式遞歸?
有沒有一些可以幫助的靜態方法?從給定的控件找到所有後代控件,無需顯式遞歸?
的Control.Controls廣告載體將返回給定的控件的所有子控件,而不是子控件的整個樹。 但是編寫一個返回所有子控件的方法並不難。如果你在.NET 3.5,你可以使用LINQ來做到這一點很容易:
var allChildControls = control.Controls.OfType<Control>().SelectMany(c => c.Controls.OfType<Control>());
我知道你沒有明確的遞歸說,但是,我覺得這個答案很整齊。除了使用yield關鍵字外沒有什麼特別的。
作爲一個側面說明。我需要篩選使用OfType Controls集合。我認爲這是沒有必要的,因爲目前只有返回控制的對象。有人知道爲什麼這是必要的嗎? –
2009-08-06 08:39:27