我如何制作一个更改1个文本框中文本的for循环?
for (int i; i < 5; i++)
{
textbox(i).text = "something"
}
但我不知道如何让我在文本框后面代表数字,有谁知道怎么做?
答案 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
在同一容器控件中(如Form
或Panel
) - 使用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;
}