最新要闻

广告

手机

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

家电

环球今日报丨C# 循环给多个连续编号的控件赋值

来源:博客园


(资料图)

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 运行后效果如下:

关键词: 顺序排列 做了一个