C#遍历groupbox本身

C#遍历groupbox本身,c#,groupbox,C#,Groupbox,我一直在四处寻找,但我没有真正找到任何有意义的东西 我想做的是,点击一个按钮,在分组框之间切换 我拥有的是一个windows窗体,有32个groupbox容器,每个容器中有12个文本框,其中一些文本框将收到一个数字,其余的将保持为空;现在,下面的代码可以工作了,我可以再复制粘贴31次: foreach (TextBox x in GROUPBOX1.Controls.OfType<TextBox>()) { int A1 = 0;

我一直在四处寻找,但我没有真正找到任何有意义的东西

我想做的是,点击一个按钮,在分组框之间切换

我拥有的是一个windows窗体,有32个groupbox容器,每个容器中有12个文本框,其中一些文本框将收到一个数字,其余的将保持为空;现在,下面的代码可以工作了,我可以再复制粘贴31次:

foreach (TextBox x in GROUPBOX1.Controls.OfType<TextBox>())
        {
            int A1 = 0;
            int.TryParse(x.Text, out A1);
            TOTAL += A1;   //defined outside of the method
        }
其中,
+GP+
表示
int GP=1
及其后续增量

现在我的想法来自:
this.Controls[“GROUPBOX”+box\u number]。Controls[“LABEL”+LABEL\u prefix+“\u”+LABEL\u number+“\u LBL”]。Text=valueToDisplayInLabel.ToString()

它(使用适当的赋值
int
)为不同分组框中的某些标签赋值。 可以这样做吗?所有GroupBox和TextBox都已创建

我试图实现的是,接收数字的文本框将全部相加,然后该值将存储在数据库中,并添加到所有其他“总计”中,也存储在数据库中

 foreach(GroupBox gb in Controls.OfType<GroupBox>())
    {
        foreach(TextBox tb in gb.Controls.OfType<TextBox>())
        {
            int A1 = 0;
            int.TryParse(tb.Text, out A1);
            TOTAL += A1;   //defined outside of the method
        }
    }
foreach(Controls.OfType()中的GroupBox gb)
{
foreach(gb.Controls.OfType()中的文本框tb)
{
int A1=0;
int.TryParse(tb.Text,out A1);
TOTAL+=A1;//在方法外部定义
}
}
这非常有效,但它不允许我获得每个分组框的组合文本框的总数,就像我想单独存储每个分组框的总数,并在稍后阶段将它们添加到一起,因为这会获取分组框中的所有文本框并将其转储到列表中,iv added
list total=new list()和<代码>总计。插入(0,A1)
尝试让这对我有用,但现在它将所有文本框值转储到列表中

基本上,我在寻找
int GB1TOT、GB2TOT等,然后
int TOTAL=GB1TOT+GB2TOT
使用两个循环

        foreach(GroupBox gb in Controls.OfType<GroupBox>())
        {
            foreach(TextBox tb in gb.Controls.OfType<TextBox>())
            {
                int A1 = 0;
                int.TryParse(tb.Text, out A1);
                TOTAL += A1;   //defined outside of the method
            }
        }
foreach(Controls.OfType()中的GroupBox gb)
{
foreach(gb.Controls.OfType()中的文本框tb)
{
int A1=0;
int.TryParse(tb.Text,out A1);
TOTAL+=A1;//在方法外部定义
}
}
是否使用两个循环

        foreach(GroupBox gb in Controls.OfType<GroupBox>())
        {
            foreach(TextBox tb in gb.Controls.OfType<TextBox>())
            {
                int A1 = 0;
                int.TryParse(tb.Text, out A1);
                TOTAL += A1;   //defined outside of the method
            }
        }
foreach(Controls.OfType()中的GroupBox gb)
{
foreach(gb.Controls.OfType()中的文本框tb)
{
int A1=0;
int.TryParse(tb.Text,out A1);
TOTAL+=A1;//在方法外部定义
}
}

这就是你想要的吗?将每个GroupBox的总数存储到列表GBtotal中。然后你可以把它们相加得到总数

int Total;
List<int> GBTotal = new List<int>()
foreach(GroupBox gb in Controls.OfType<GroupBox>())
{
    int temp = 0;
    foreach(TextBox tb in gb.Controls.OfType<TextBox>())
    {
        int A1 = 0;
        if(int.TryParse(tb.Text, out A1))
        {
           temp += A1;
        }
    }
    GBTotal.Add(temp);
}
Total = GBTotal.Sum();

或者使用loop获取总数

这是您想要的吗?将每个GroupBox的总数存储到列表GBtotal中。然后你可以把它们相加得到总数

int Total;
List<int> GBTotal = new List<int>()
foreach(GroupBox gb in Controls.OfType<GroupBox>())
{
    int temp = 0;
    foreach(TextBox tb in gb.Controls.OfType<TextBox>())
    {
        int A1 = 0;
        if(int.TryParse(tb.Text, out A1))
        {
           temp += A1;
        }
    }
    GBTotal.Add(temp);
}
Total = GBTotal.Sum();

或者使用loop获得总数

谢谢,虽然这确实为我指明了正确的方向,但它并没有完全回答我的问题+1谢谢你,虽然这确实为我指明了正确的方向,但它并没有完全回答我的问题+这是一个非常清楚的解释,对我帮助很大。这是一个非常清楚的解释,对我帮助很大。