首页 文章

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

提问于
浏览
3

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

1 回答

  • 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();
    

相关问题