zl程序教程

您现在的位置是:首页 >  其他

当前栏目

C# 循环给多个连续编号的控件赋值

2023-04-18 15:20:04 时间
C# 循环给多个连续编号的控件赋值


我们经常在 winform 界面上用很多文本框用来显示一组数据,文本框前面有Label标识。我们得到的数据也经常是一个list 或者数组的形式的。
需要给这些文本框赋值:
int[] data = { 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 };
textBox1.Text = data[0].ToString();
textBox2.Text = data[1].ToString();
textBox3.Text = data[2].ToString();
textBox4.Text = data[3].ToString();
textBox5.Text = data[4].ToString();
textBox6.Text = data[5].ToString();
textBox7.Text = data[6].ToString();
textBox8.Text = data[7].ToString();
textBox9.Text = data[8].ToString();
textBox10.Text = data[9].ToString();

 

这样太麻烦,控件太多的话写起来比较麻烦,编号什么也容易弄错

如果我们用个for循环 一次性赋值,再多也不怕了,这样程序也比较精简。

做了一个简单的demo,放一个panel ,然后里面放10个Label,和10个TextBox ,

控件名就用自动生成的带序号的控件名。将控件按顺序排列好。

  

private void button1_Click(object sender, EventArgs e)
{
for (int i = 1; i <= 10; i++)
{
// 方式1:
((Label)(this.Controls.Find("label" + i.ToString(), true)[0])).Text = "textBox" + i.ToString();

//方式2:
panel1.Controls["textBox" + i.ToString()].Text = i.ToString();
}
}
 

点击 Button 运行后效果如下: