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