在面板或文本框的for循环中使用变量

本文关键字:循环 变量 for 文本 | 更新日期: 2023-09-27 18:18:16

我试图将文本框中的文本设置为A, B, C等,所以我试图使用for循环来生成如下代码

string alpha = "abcdef.."
for (int i = 1; i <= number +1; i++)
{
  textboxi.text = .alpha.CharAt(i)
}

"textboxi"不起作用。文本框+ I不工作,有没有人有任何想法

Thanks for the help

在面板或文本框的for循环中使用变量

假设您有一些名为textbox1, textbox2等的文本框,您不能只是在名称中放入变量并让它引用正确的文本框。你应该先把文本框放到一个数组中。

TextBox[] textboxArray = new TextBox[] { textbox1, textbox2, textbox3, ... };
string alpha = "acdefde";
for (int i = 0; i < alpha.Length; i++)
{
    textboxArray[i].Text = alpha[i].ToString();
}

编辑

注意,这对没有任何错误检查,所以如果你给它一个太长的字符串,它会爆炸。这不是那么大的问题,这里的两个项目的长度是已知的在编译时,但这里有一个修复:改变i < array.Lengthi < array.Length && i < textboxArray.Length。如果您要将其放入更一般的函数中,如果给定的文本框数量不完全等于给定字符串的长度,我会让它抛出异常。

试试这个

string alpha = "abcdef.."
StringBuilder sb = new StringBuilder();
for (int i = 1; i <= number +1; i++)
{
  sb.Append (alpha.CharAt(i));
}
textbox.Text = sb.ToString();

编辑:我的回答漏掉了你试图给每个文本框分配一个字母,正如评论所暗示的那样。所以,Jack的答案是正确的,但是我强烈建议你对你的代码做一些思考,因为它闻起来很有趣(不是一种好的方式)。此外,如果文本与文本框的长度不相同,则会抛出异常。