从上到下获取面板中的所有控件

本文关键字:控件 获取 从上到下 | 更新日期: 2023-09-27 18:23:38

我正在写一段代码来获取面板中的所有控件,比如:

       foreach (Control c in panel1.Controls)
        {
            MessageBox.Show(c.Name.ToString());
        }

没错,把所有的控制权都还给我。顶部控件(textBox1)的TabIndex为0,并且从上到下递增(这意味着textBox2在textBox1之下,textBox2的TabIndex是1。)

当我在MessageBox中运行此代码时,它首先返回textBox2,然后返回textBox1!

那么,这个选择的基础是什么(为什么电脑一开始选择文本框2)?

我该如何解决这个问题?!

感谢u

从上到下获取面板中的所有控件

您想要的只是TabIndex排序的控件列表
Controls属性按控件添加到窗体的顺序获取控件列表。您只需要按TabIndex对该列表进行排序。

Using System.Linq;
foreach (var item in panel1.Controls.OfType<Control>().OrderBy(ee=>ee.TabIndex))

您还可以根据控件的位置进行订购。通过获得分数。

它从上到下返回您首先添加到控件中的文本框。