更改多个文本框中的文本?

时间:2015-01-13 08:56:02

标签: c# forms loops for-loop

我如何制作一个更改1个文本框中文本的for循环?

for (int i; i < 5; i++) 
{
    textbox(i).text = "something"
}

但我不知道如何让我在文本框后面代表数字,有谁知道怎么做?

3 个答案:

答案 0 :(得分:3)

您可以使用Controls.Find

var txts = this.Controls.Find("textbox" + i, true); // true for recursive search
foreach(TextBox txt in txts)
    txt.Text = "something";

或 - 如果TextBoxes在同一容器控件中(如FormPanel) - 使用LINQ:

var txts = this.Controls.OfType<TextBox>().Where(txt => txt.Name == "textbox" + i);
foreach(TextBox txt in txts)
    txt.Text = "something";

实际上你不需要循环变量,你也可以使用String.StartsWith来获取所有:

var txts = this.Controls.OfType<TextBox>().Where(txt => txt.Name.StartsWith("textbox"));
foreach(TextBox txt in txts)
    txt.Text = "something";

答案 1 :(得分:3)

将文本框存储在数组中,然后循环遍历数组

for (int i; i < 5; i++) 
{
    textboxArray[i].text = "something"
}

答案 2 :(得分:0)

如果您不想更改表单上的每个文本框,只需将它们添加到List:

List<TextBox> TextBoxes = new List<TextBox>();
TextBoxes.Add(This.TextBox1);
TextBoxes.Add(This.TextBox3):

然后正如其他人建议你可以linq或定期预览列表中的文本框

TextBoxes.Foreach(Textbox => TextBox.Text = "something");

foreach (TextBox r in TextBoxes)
{
    r.Text = "something;
}