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

时间:2014-08-14 21:06:21

标签: c# asp.net

我正在尝试将文本框中的文本设置为A B C等等,所以我尝试使用for循环来获得类似下面代码的内容

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

“textboxi”无效。文本框+我没有工作idir,任何人都有任何想法

感谢您的帮助

2 个答案:

答案 0 :(得分:1)

试试这个

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

修改: 我的回答错过了你试图为每个文本框分配一个字母,正如评论所暗示的那样。 所以,杰克的答案是正确的,但我强烈建议你考虑一下你的代码,因为它闻起来很有趣(不是很好)。此外,如果文本的长度与文本框的长度不同,则会抛出异常。

答案 1 :(得分:1)

假设您有一些名为textbox1textbox2等的文本框,您不能只在名称中添加变量并让它引用正确的文本框。您应该首先将文本框放在数组中。

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.Length更改为i < array.Length && i < textboxArray.Length。如果你把它放到一个更通用的函数中,如果给出的文本框的数量不完全等于给定字符串的长度,我会抛出异常。