我创建了四个TextBox
es(按此顺序:textBox1
,textBox2
,...)并在GroupBox
内将它们放在另一个之下。然后我添加了Click事件:
private void button1_Click(object sender, EventArgs e)
{
foreach (TextBox tb in groupBox1.Controls.OfType<TextBox>())
{
if (string.IsNullOrWhiteSpace(tb.Text))
{
Console.WriteLine(tb.Name);
}
}
}
当我运行程序并单击Button
时(当所有TextBox
es为空时),这是我得到的输出:
textBox4
textBox3
textBox2
textBox1的
显然,foreach
循环以相反的顺序迭代GroupBox
控件。我希望它从textBox1
到textBox4
执行此操作,因为这是创建它们并将其放入组合框中的顺序。
为什么foreach
循环反向?好奇......
答案 0 :(得分:5)
控件按照同一父容器中控件的Z顺序排列(从最顶部到最底部)。你想如何订购?
答案 1 :(得分:0)
试试这个
foreach (TextBox txt in Controls.OfType<GroupBox>().SelectMany(g=>g.Controls.OfType<TextBox>()).ToList().Reverse<TextBox>())
{
//Write your logic here
}