更改多个文本框中的文本
本文关键字:文本 | 更新日期: 2023-09-27 18:37:15
我将如何制作一个 for 循环来更改多个文本框中的文本?
for (int i; i < 5; i++)
{
textbox(i).text = "something"
}
但是我不知道如何让 I 来表示文本框后面的数字,有人知道如何吗?
将文本框存储在数组中,然后遍历数组
for (int i; i < 5; i++)
{
textboxArray[i].text = "something"
}
您可以使用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";
如果您不想更改表单上的每个文本框,只需将它们添加到列表中即可:
List<TextBox> TextBoxes = new List<TextBox>();
TextBoxes.Add(This.TextBox1);
TextBoxes.Add(This.TextBox3):
然后,正如其他人建议的那样,您可以 LINQ 或常规 for 列表中的文本框
TextBoxes.Foreach(Textbox => TextBox.Text = "something");
或
foreach (TextBox r in TextBoxes)
{
r.Text = "something;
}