我一直在四处寻找,我真的发现了任何有意义的东西。
我想要做的是,只需点击一下按钮即可在组框之间进行更改。
我所拥有的是一个包含32个groupbox容器的Windows窗体,每个容器中有12个文本框,一些文本框将收到一个数字,其余的将保持为空;现在下面的代码工作,我可以复制和粘贴31次:
int GP =1
它检查GROUPBOX1中的所有文本框并将所有值与值一起添加,并忽略空文本框。
我想要做的是,点击一个按钮,将+1
增加foreach
,然后移动到下一个组框及其文本框集,以便我可以重复使用代码在foreach (TextBox x in GROUPBOX+GP+.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_number].Controls["LABEL"+label_prefix+"_"+label_number+"_LBL"].Text = valueToDisplayInLabel.ToString();
及其后续增量。
现在我从以下方面得到了这个想法:
int
(使用适当的分配 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
}
}
)将值分配给不同组框中的某些标签。
可以这样做吗?已经创建了所有组框和文本框。
我想要完成的是,接收号码的文本框将全部加在一起,然后该值将存储在数据库中,并添加到所有其他&#34;总计&#34;并存储在数据库中。
List<int> TOTAL = new List<int>();
这很好用,但它不允许我得到每个组合框的组合文本框的总数,就像我想单独存储每个groupbox总和并在稍后阶段将它们一起添加,其中这需要所有在组框中的文本框并将它们转储到列表中,iv添加了TOTAL.Insert(0, A1);
和int GB1TOT, GB2TOT
以尝试让我工作,但现在它将所有文本框值转储到列表中。
基本上我正在寻找int TOTAL = GB1TOT + GB2TOT
等等,然后{{1}}
答案 0 :(得分:2)
使用两个循环?
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
}
}
答案 1 :(得分:0)
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();
技术上可以使用
Total = GBTotal[0] + GBTotal[1] + ....
或使用循环来获得总数