更改多个文本框中的文本

本文关键字:文本 | 更新日期: 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位于同一个容器控件(如 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";

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

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;
}