C#遍历groupbox本身
我一直在四处寻找,但我没有真正找到任何有意义的东西 我想做的是,点击一个按钮,在分组框之间切换 我拥有的是一个windows窗体,有32个groupbox容器,每个容器中有12个文本框,其中一些文本框将收到一个数字,其余的将保持为空;现在,下面的代码可以工作了,我可以再复制粘贴31次:C#遍历groupbox本身,c#,groupbox,C#,Groupbox,我一直在四处寻找,但我没有真正找到任何有意义的东西 我想做的是,点击一个按钮,在分组框之间切换 我拥有的是一个windows窗体,有32个groupbox容器,每个容器中有12个文本框,其中一些文本框将收到一个数字,其余的将保持为空;现在,下面的代码可以工作了,我可以再复制粘贴31次: foreach (TextBox x in GROUPBOX1.Controls.OfType<TextBox>()) { int A1 = 0;
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 addedlist 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谢谢你,虽然这确实为我指明了正确的方向,但它并没有完全回答我的问题+这是一个非常清楚的解释,对我帮助很大。这是一个非常清楚的解释,对我帮助很大。