C# 使用循环修改一组WinForm控件?

C# 使用循环修改一组WinForm控件?,c#,arrays,winforms,loops,textbox,C#,Arrays,Winforms,Loops,Textbox,我有一组文本框控件,我想用一个双精度数组填充它们 Tol1.Text = lineTolFront[0].ToString(); Tol2.Text = lineTolFront[1].ToString(); Tol3.Text = lineTolFront[2].ToString(); Tol4.Text = lineTolFront[3].ToString(); Tol5.Text = lineTolFront[4].ToString(); Tol6.Text = lineTolFront[

我有一组文本框控件,我想用一个双精度数组填充它们

Tol1.Text = lineTolFront[0].ToString();
Tol2.Text = lineTolFront[1].ToString();
Tol3.Text = lineTolFront[2].ToString();
Tol4.Text = lineTolFront[3].ToString();
Tol5.Text = lineTolFront[4].ToString();
Tol6.Text = lineTolFront[5].ToString(); 
//and so on

是否有一种更简单的方法可以使用循环而不必手动输入值?

首先,使用LINQ获取所有这些文本框(注意:这在有许多控件不希望手动放入集合时特别有用)


您可以先将文本框添加到集合中。至少复制/粘贴工作要少一点

var textBoxes = new List<TextBox> { Tol1, Tol2, Tol3, Tol4, Tol5, Tol6 };

for (var i = 0; i < lineTolFront.Count; i++)
    textBoxes[i].Text = lineTolFront[i].ToString();
var textboxs=新列表{Tol1、Tol2、Tol3、Tol4、Tol5、Tol6};
对于(变量i=0;i

关于M Patel的评论,请确保您将文本框添加到集合中的顺序与您希望从
lineTolFront
数组中分配双精度的顺序相同。

您可以将控件添加到数组中并在其中循环:

var controls = new[] { Tol1, Tol2, Tol3, Tol4, Tol5, }; //etc
for(int i = 0; i < controls.Length; i++)
{
    controls[i].Text = lineTolFront[i].ToString();
}
var controls=new[]{Tol1,Tol2,Tol3,Tol4,Tol5,}//等
for(int i=0;i
这是可以的,但如果集合是以新[]{Tol3,Tol1,Tol2,Tol5,Tol4,}的形式订购的;如果集合按新[]{Tol3,Tol1,Tol2,Tol5,Tol4,}排序,则此代码将变为invalidName(如上@DaveZuch);这段代码将变得无效,但这不是上面的帖子所说的。Tol3需要一个索引值3@GrantWinney非常感谢。我正在努力解决手头的问题,不是所有可能由此产生的问题;)@Grantwiney是的,如果确实需要,您可以随时向查询添加排序。@Grantwiney很高兴知道。
var textBoxes = new List<TextBox> { Tol1, Tol2, Tol3, Tol4, Tol5, Tol6 };

for (var i = 0; i < lineTolFront.Count; i++)
    textBoxes[i].Text = lineTolFront[i].ToString();
var controls = new[] { Tol1, Tol2, Tol3, Tol4, Tol5, }; //etc
for(int i = 0; i < controls.Length; i++)
{
    controls[i].Text = lineTolFront[i].ToString();
}