C# 自己遍历 groupbox
C# iterate through the groupbox themselves
我一直在四处寻找,但我没有真正找到任何有意义的东西。
我想做的是单击按钮在组框之间切换。
我有一个 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
)将值分配给不同组框中的某些标签。
这可以这样做吗?所有组框和文本框都已创建。
我想要完成的是,接收数字的文本框将全部相加,然后该值将存储在数据库中并添加到所有其他文本框 "totals" 等等存储在数据库中。
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
}
}
这一切都很好,但它不允许我获得每个组框的组合文本框的总数,就像我想单独存储每个组框的总数并在以后将它们加在一起,就像这样获取组框中的所有文本框并将它们转储到列表中,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
}
}
这是你想要的吗?将每个 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();
从技术上讲,您可以使用
Total = GBTotal[0] + GBTotal[1] + ....
或使用循环得到总数
我一直在四处寻找,但我没有真正找到任何有意义的东西。
我想做的是单击按钮在组框之间切换。
我有一个 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
)将值分配给不同组框中的某些标签。
这可以这样做吗?所有组框和文本框都已创建。
我想要完成的是,接收数字的文本框将全部相加,然后该值将存储在数据库中并添加到所有其他文本框 "totals" 等等存储在数据库中。
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
}
}
这一切都很好,但它不允许我获得每个组框的组合文本框的总数,就像我想单独存储每个组框的总数并在以后将它们加在一起,就像这样获取组框中的所有文本框并将它们转储到列表中,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
}
}
这是你想要的吗?将每个 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();
从技术上讲,您可以使用
Total = GBTotal[0] + GBTotal[1] + ....
或使用循环得到总数