我有多个文本框(tbVarName1、tbVarName2、... tbVarName[n]),我想在 for 循环中递增它们以将文本分配给某物
I have multiple text boxes (tbVarName1, tbVarName2, ... tbVarName[n]) and I want to increment them in a for loop to assign the text to something
我有多个文本框,我想将它们的字符串内容分配给一个变量,但是我不确定如何递增文本框。它们被命名为 tbVarName1、tbVarname2 等等。下面是我的 for 循环,现在我只是硬编码了 tbVarName1。
我研究了其他人所做的一些事情,但只在 VB 中找到了一些技巧。
for(seriesIndex = 1; seriesIndex <= 4; seriesIndex++)
{
dataChart.Series["Variable " + seriesIndex].LegendText = tbVarName1.Text
}
最后,我希望将图例更新为文本框中的内容
有多种方法可以做到这一点,一种方法是将控件添加到数组中,例如:
var controls = new [] { tbVarName1, tbVarName2, tbVarName3 };
现在您可以通过索引访问它们:
for(seriesIndex = 1; seriesIndex <= 4; seriesIndex++)
{
dataChart.Series["Variable " + seriesIndex].LegendText = controls[seriesIndex - 1].Text;
// ^^^^^^^^^^^^^^^^^^^^^^^^^
// Like this
// Note: arrays start at zero
}
另一种方法是使用表单中的控件集合(假设所有文本框都是表单的直接子项)
var ctrl = this.Controls.OfType<TextBox>();
for(seriesIndex = 1; seriesIndex <= 4; seriesIndex++)
{
TextBox t = ctrl.FirstOrDefault(c => c.Name == "tbVarName" + i);
if(t != null) dataChart.Series["Variable " + seriesIndex].LegendText = t.Text;
}
这不需要数组,但如果您有许多文本框类型的控件,则可能会以更大的循环结束,如果文本框是不同容器(面板、组框)的子项,则不值得付出努力
我有多个文本框,我想将它们的字符串内容分配给一个变量,但是我不确定如何递增文本框。它们被命名为 tbVarName1、tbVarname2 等等。下面是我的 for 循环,现在我只是硬编码了 tbVarName1。
我研究了其他人所做的一些事情,但只在 VB 中找到了一些技巧。
for(seriesIndex = 1; seriesIndex <= 4; seriesIndex++)
{
dataChart.Series["Variable " + seriesIndex].LegendText = tbVarName1.Text
}
最后,我希望将图例更新为文本框中的内容
有多种方法可以做到这一点,一种方法是将控件添加到数组中,例如:
var controls = new [] { tbVarName1, tbVarName2, tbVarName3 };
现在您可以通过索引访问它们:
for(seriesIndex = 1; seriesIndex <= 4; seriesIndex++)
{
dataChart.Series["Variable " + seriesIndex].LegendText = controls[seriesIndex - 1].Text;
// ^^^^^^^^^^^^^^^^^^^^^^^^^
// Like this
// Note: arrays start at zero
}
另一种方法是使用表单中的控件集合(假设所有文本框都是表单的直接子项)
var ctrl = this.Controls.OfType<TextBox>();
for(seriesIndex = 1; seriesIndex <= 4; seriesIndex++)
{
TextBox t = ctrl.FirstOrDefault(c => c.Name == "tbVarName" + i);
if(t != null) dataChart.Series["Variable " + seriesIndex].LegendText = t.Text;
}
这不需要数组,但如果您有许多文本框类型的控件,则可能会以更大的循环结束,如果文本框是不同容器(面板、组框)的子项,则不值得付出努力