C# 使用foreach循环检索TextBox';它在一个分组框中

C# 使用foreach循环检索TextBox';它在一个分组框中,c#,.net,winforms,C#,.net,Winforms,我在WinForm中有十个分组框。每个组框包含10个文本框,我已经定义了每个TextBox名称。如何使用foreach循环获取每个文本框?请尝试以下代码 Control.ControlCollection coll = this.Controls; foreach(Control c in coll) { if(c != null) } 以下是我的建议: foreach(var groupBox in Controls.OfType<GroupBox>()) { for

我在
WinForm
中有十个分组框。每个组框包含10个文本框,我已经定义了每个
TextBox
名称。如何使用foreach循环获取每个文本框?

请尝试以下代码

Control.ControlCollection coll = this.Controls;
foreach(Control c in coll) {
  if(c != null)
}
以下是我的建议:

foreach(var groupBox in Controls.OfType<GroupBox>())
{
    foreach(var textBox in groupBox.Controls.OfType<TextBox>())
    {
        // Do Something
    }
}
foreach(Controls.OfType()中的var groupBox)
{
foreach(groupBox.Controls.OfType()中的var textBox)
{
//做点什么
}
}
或者将其放在一个循环中:

foreach (var textBox in Controls.OfType<GroupBox>().SelectMany(groupBox => groupBox.Controls.OfType<TextBox>()))
{
    // Do Something
}
foreach(Controls.OfType()中的var textBox.SelectMany(groupBox=>groupBox.Controls.OfType())
{
//做点什么
}
但是如果您定义了每个文本框名称 通过循环获取每个
TextBox
有什么意义


您可以定义一个
列表
,在创建时保存每个
文本框
的引用,然后只需浏览
列表
,即可访问每个
文本框

请正确标记问题。-1表示:标记,格式。小写。。等等。首先找到groupbox类型的控件,然后跳入并在ITI中获取textbox类型的控件。如果需要这样做,则说明您做错了什么。你已经知道盒子的名字了对吗?谢谢你的帮助很有用谢谢你的帮助很有用
foreach (var ctrl in gbDatabaseColumns.Controls)
{
     if (ctrl is DevExpress.XtraEditors.TextEdit)
     {
        StoreTextEdit(config, (ctrl as DevExpress.XtraEditors.TextEdit));
     }
}
foreach (var ctrl in gbDatabaseColumns.Controls)
{
     if (ctrl is DevExpress.XtraEditors.TextEdit)
     {
        StoreTextEdit(config, (ctrl as DevExpress.XtraEditors.TextEdit));
     }
}