我有一堆文本框,大约150个。它们位于选项卡控件的不同选项卡内,并且不按屏幕上的名称排序。它们只是简单地命名为textBox1,textBox2,textBox3 ......我希望能够按名称顺序迭代它们,而不是它们在表单上的显示方式。我怎么会这样做?
答案 0 :(得分:5)
public IEnumerable<Control> GetChildrenRecursive(Control parent)
{
var controls = new List<Control>();
foreach(Control child in parent.Controls)
controls.AddRange(GetChildrenRecursive(child));
controls.Add(parent); //fix
return controls;
}
TextBox[] textboxes = GetChildrenRecursive(this)
.OfType<TextBox>().OrderBy(i => i.Name).ToArray();