我有 100 个textBoxes
,我想使用 for 循环为所有它们设置一个值。
for(int i=0; i<100; i++)
{
textBox1.AppendText("a");
}
但是textBox
ID必须动态变化,如textBox1
,textBox2
,textBox3
等...
我该怎么做?
试试这段代码:
for (int i = 1; i <= numberOfTextBoxes; i++)
{
var tb = this.Controls.Find("textBox" + i, true).FirstOrDefault();
if(tb != null)
tb.Text = "hello " + i;
}
有关Find
方法的更多信息。
将所有文本框放在一个列表中。
或者将它们放在控件中,然后查询它们。使用文本框的类型调用此方法。
public IEnumerable<Control> GetAll(Control control,Type type)
{
var controls = control.Controls.Cast<Control>();
return controls.SelectMany(ctrl => GetAll(ctrl,type))
.Concat(controls)
.Where(c => c.GetType() == type);
}
编辑:如评论中所述,您也可以将表单添加到此方法。 或者直接从窗体查询控件。