繁体   English   中英

将Textbox1.text更改为Textbox2.text

[英]Change the Textbox1.text to Textbox2.text

假设我有多个TextBoxs并且希望将数字连接起来。 然后,我想在上面添加一些文本。 这有可能吗? 这是我到目前为止的内容:

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

我不确定该怎么做。 有人可以指出我正确的方向吗?

也许尝试使用插值字符串

插值字符串看起来像包含插值表达式的模板字符串。 插值字符串返回一个字符串,该字符串将其包含的插值表达式替换为其字符串表示形式。

例:

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM