【发布时间】:2018-06-22 10:40:25
【问题描述】:
我有几个TextBoxes 在表单上。我已经为他们分配了 same Tag 值。现在我想访问并总结这些TextBoxes 的值。我尝试了以下方法,但没有奏效。即使它没有抛出任何异常。但是控件在foreach 循环 之前退出函数。任何帮助将不胜感激。提前致谢。
private void CalculateExpense()
{
int sum = 0;
var textBoxes = this.Controls
.OfType<TextBox>()
.Where(d => d.Tag.ToString() == "ExpenseField")
.ToList();
foreach (var item in textBoxes)
{
sum = sum + Convert.ToInt16(!string.IsNullOrEmpty(item.Text) ? item.Text : "0");
}
this.TotalExpenseLbl.Text = sum.ToString();
this.TotalMonthlyExpenses.Text = sum.ToString();
}
【问题讨论】:
-
您是否尝试过调试您的代码并检查
textBoxes是否为空? -
a) tbox 是直接在表单上还是在某个容器中,例如 groupbox 或 panel?调试器对
textBoxes.Count等有什么看法? - 如果它们是嵌套的,并且您知道将this.Controls替换为the container.Controls的位置。如果它们在许多容器中,您可能需要查看recursive function.. -
`我尝试了以下方法,但没有成功`你能详细说明它是如何失败的吗?
-
所有文本框都放在不同的组框中。当我调试代码时,当它到达 var textBoxes = this.Controls.OfType
().Where(d => d.Tag.ToString() == "ExpenseField").ToList 时,代码块中存在调试器(); -
@mubsher 这不太可能发生。
标签: c# .net visual-studio winforms