c#遍历组框本身
本文关键字:遍历 | 更新日期: 2023-09-27 18:07:50
我四处找了找,并没有找到任何有意义的东西。
我想做的是在点击按钮时在组框之间进行更改。
我有什么是一个Windows窗体32组框容器和有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
}
检查GROUPBOX1中的所有文本框,并将所有带值的文本框加在一起,忽略空文本框。
我想做的是,点击一个按钮,是增加int GP =1
的+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
}
}
这是伟大的,但它并不允许我把总数每组框的文本框,就像我想单独存储每个groupbox总在稍后的阶段,并将它们添加在一起,这需要所有的文本框,在框组和转储一个列表,iv List<int> TOTAL = new List<int>();
和TOTAL.Insert(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
}
}
这是你想要的吗?将每个组框的总数存储到列表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();
技术上可以使用
Total = GBTotal[0] + GBTotal[1] + ....
或者使用循环来获取总