在选项卡控件内按名称顺序迭代文本框

时间:2010-07-14 13:22:47

标签: c# textbox iteration tabcontrol

我有一堆文本框,大约150个。它们位于选项卡控件的不同选项卡内,并且不按屏幕上的名称排序。它们只是简单地命名为textBox1,textBox2,textBox3 ......我希望能够按名称顺序迭代它们,而不是它们在表单上的显示方式。我怎么会这样做?

1 个答案:

答案 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();