
这是您的另一个选择。我通过创建一个示例应用程序对其进行了测试,然后将一个GroupBox和一个GroupBox放入初始的GroupBox中。在嵌套的GroupBox中,我放置了3个TextBox控件和一个按钮。这是我使用的代码(甚至包括您正在寻找的递归)
public IEnumerable<Control> GetAll(Control control,Type type){ var controls = control.Controls.Cast<Control>(); return controls.SelectMany(ctrl => GetAll(ctrl,type)) .Concat(controls) .Where(c => c.GetType() == type);}为了在表单加载事件中对其进行测试,我希望对初始GroupBox内的所有控件进行计数
private void Form1_Load(object sender, EventArgs e){ var c = GetAll(this,typeof(TextBox)); MessageBox.Show("Total Controls: " + c.Count());}而且每次都返回正确的计数,所以我认为这将完全适合您要查找的内容:)
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)