2

我有一个 20 的表单,TextBoxes(2-22)我想将它们全部添加 aList<TextBox>所以我可以使用for-statement.

我的想法(笑):

List<TextBox> textBoxes = new List<TextBox>();

for(int i = 2; i < 23; i++) {

//This String should refer to = textBox2, textBox3, etc
textBoxes.Add("textBox"+ Convert.ToString(i));

}

但这不起作用,因为它无法将字符串转换为 textBoxName。你可以这样做:

  textBoxes.Add(textBox2);
  textBoxes.Add(textBox3);
  textBoxes.Add(textBox4);
  ...So on

但是没有人有时间做那个...... :)

4

3 回答 3

2

如果是 WinForms 这应该可以工作......

textBoxes.Add((TextBox)Controls.Find("textBox" + i, true)[0]);
于 2013-04-03T20:35:20.657 回答
1

在将它们传递到列表之前,您需要将它们转换为控件,而不是尝试将字符串值放入List<TextBox>.

尝试将其添加到您的循环中:

textBoxes.Add((TextBox)this.Controls.Find("textBox"+ Convert.ToString(i),true));
于 2013-04-03T20:37:31.707 回答
0
List<TextBox> textBoxes = new List<TextBox>();

for (int i = 1; i <= 22; i++) {
    textBoxes.Add((TextBox)this.Controls.Find("textBox" + i, false)(0));

}
于 2013-04-03T20:37:44.373 回答