2

20 個のフォームがTextBoxes(2-22)あり、それらをすべて a に追加したいList<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 に答える