我有一个包含20 TextBoxes(2-22)
的表单,我想将它们全部添加到List<TextBox>
所以我可以使用{{1}在所有文件中添加相同的文本}。
我的想法(笑):
for-statement
但这不起作用,因为它无法将字符串转换为textBoxName。 你可以这样做:
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));
}
但是没有人有时间......:)
答案 0 :(得分:2)
如果是WinForms,这应该可行......
textBoxes.Add((TextBox)Controls.Find("textBox" + i, true)[0]);
答案 1 :(得分:1)
在将它们传递到列表中之前,您需要将它们作为控件进行投射,而不是尝试在List<TextBox>
中添加字符串值。
尝试将其添加到您的循环中:
textBoxes.Add((TextBox)this.Controls.Find("textBox"+ Convert.ToString(i),true));
答案 2 :(得分:0)
List<TextBox> textBoxes = new List<TextBox>();
for (int i = 1; i <= 22; i++) {
textBoxes.Add((TextBox)this.Controls.Find("textBox" + i, false)(0));
}