C#怎么把100个Label控件加到一维数组中,用数组元素来操作属性

比如100个Label,从Label1到Label100,本来是Label1.Text,Label2.Text,我想实现一个数组,比如a[0].Text就相当于Label1.Text,a[1].Text就相当于Label2.Text
谢谢

第1个回答  推荐于2017-09-16
就是Label数组啊,申明和其它数组一样
Label[] a=new Label[100];//声明长度为100的Label数组
初始化后a里面的每一个元素都是一个Label,就像你说的a[0]就相当于Label1,a[1]就相当于Label2
调用数组中的Label就可以按序执行各种操作。
也可以申明一个List<Label> La=new List<Label>();Label数据链表
你任何一个Label控件都可以随时插入其中,比如La.Add(Label1);
La.Add(Label2);等,链表可以不用限定初始长度,随入随出。。用起来也很方便
你可以根据实际情况来选择需求。追问

我就是这个意思,但是我想知道怎么把一百个一下子加到数组里面,一个一个赋值我会,但是我想有没有简单的循环可以把100个一下子加进去

追答

你是要把已经存在的100个Label一下加进去的话,遍历一下就行,比如你的Label是当前窗体下的控件,那么可以这么加入

List<Label> La=new List<Label>();
foreach (Control c in this.Controls)
{
     if ((c as Label) != null)
    {//如果是Label控件,加入链表
        La.Add((Label)c);
    }
}

La里面就是你所有的Label,La.Count就是Label的个数,可以和数组一样用循环来读取

for(int i=0;i<La.Count;i++)
{//这样可以遍历按序访问每一个Label
    La[i].Text="标签"+i;
    La[i].Location=i==0?new Point(50,5):new Point(50,La[i-1].Top+La[i-1].Height+5);
}

本回答被提问者和网友采纳
第2个回答  2013-09-14
首先你想干什么?再一个label在开发中说是控件,在操作中说是对像 操作对像就行
建议用for循环动态生成lable 生成的过程中进行属性的操作 因为lable一旦生成就是控件了,再操作的话只能根据你生成时控件的名称来操作,比如
for(i=1;=<5;i++)
{
lable la=new lable();
la.name="Text"+i.ToString();
la.location=....
}
操作时
((lable)Text2).Text等属性调用追问

这样的目的是为了可以用循环操作,不然一个一个操作太麻烦

追答

那用我上面的代码就可以实现了 记得控制控件显示的位置 要不然就乱了

第3个回答  2013-09-14
string[] strArry;
var labels=winform.findCotrllers("label");
for(i=0;i<100;i++)
{
strArry[i]= labelds[i].text;
}
第4个回答  2013-09-13
Label[] arr = new Label[100];
for(int i=0; i<arr.length; i++){
arr[i] = new Label();
arr[i].Text = "xxxx";
}
or
List<Label> list = new List<Label>();
for(int i=0; i<100; i++){
Label lab = new Label();
lab.Text = "xxxx";
list.Add(lab);
}
相似回答