将Textbox1.text更改为Textbox2.text

时间:2017-07-23 10:15:41

标签: c# visual-studio

我们说我有多个TextBoxs,我希望连接这样的数字。然后,我想在其上添加一些文字。这有可能以某种方式吗? 这就是我到目前为止所做的:

for (int i = 0; i<5; i++)
{
    string str = "Textbox" + i.ToString();
    str.Text = "testing";
}

我不知道该怎么做。有人能指出我正确的方向吗?

2 个答案:

答案 0 :(得分:0)

也许尝试使用Interpolated Strings

  

插值字符串看起来像包含插值表达式的模板字符串。插值字符串返回一个字符串,该字符串用它们的字符串表示替换它包含的插值表达式。

示例:

for (int i = 0; i<5; i++)
{
    str = $"Textbox{i}";
    str.Text = "testing";
}

答案 1 :(得分:0)

嗯,这是您可以使用的另一种方法,您必须跟踪表单中的所有文本框并将它们添加到全局列表中。

Dictionary<string,TextBox> texts = new Dictionary<string,TextBox>();

FormLoad 上执行此操作

foreach (Control c in this.Controls)
    if (c.GetType() == typeof(TextBox))
       texts.Add(c.Name,(TextBox)c);

并且只要您想获得任何文本框,请执行此操作

 TextBox targetBox;
 texts.TryGetValue("textBox1", out targetBox);

你的for循环看起来像

for (int i = 0; i<5; i++)
{
    string str = "Textbox" + i.ToString();
    TextBox targetBox;
    texts.TryGetValue(str, out targetBox);
    targetBox.Text = "testing";
}

这种方法的一个优点是整个文本框(任何控件)都在字典中,因此即使文本框不遵循通用的命名方案,您也可以查找它。