ArrayList list = new ArrayList();
for (int k = 0; k < 6; k++)
{
for (int p = 0; p < 11; p++)
{
Label labs = new Label();
labs.HorizontalAlignment = HorizontalAlignment.Left;
labs.VerticalAlignment = VerticalAlignment.Top;
labs.Margin = new Thickness(599 + (17 * p), 206 + (17 * k), 0, 0);
labs.Name = "lab" + k + p;
labs.Width = 16;
labs.Height = 16;
list.Add(labs);
main.Children.Add(labs);
}
}
我动态添加一些Label,并放入ArrayList中,后面我要遍历ArrayList,获取每个Label的值,对每个Label进行操作,要怎么写?
for(int i=0;i<lst.count;i++){
label a=lst[i] as label
if(a!=null){
在這裡可以操作a,並且a,就是你加入的label
}
}
for (int i = 0; i < list.Count; i++)
{
Label lb = list[i] as Label;
if (lb != null)
{
....
}
}
我按你这个方法写了之后是有用,但不是我要的效果啊,这样做了之后,所有的Label都同时变化,显示的东西都一样的,我想要的效果是执行一次,第一个Label显示数据,执行第二次,第二个Label显示数据,以此类推,有什么好法子?
@雨逸凡尘: 不可能同時變化,你 操作了哪個?哪個變化哦。除非你寫錯了。你在if(lb!+null){
這裡再加一些判斷,判斷是否你你需要修改的label,如果是就修改,如果不是就不要修改。
可以通過,label。name 進行判斷哦。
}
@無限遐想: 怎么判断是否是我要修改的Label?
@雨逸凡尘: lb.name是否等於你要修改的。如果是,就修改,如果不是就不修改
@無限遐想: O__O"…我要修改的怎么写?
@雨逸凡尘:
ArrayList list = new ArrayList();
for (int k = 0; k < 6; k++)
{
for (int p = 0; p < 11; p++)
{
Label labs = new Label();
labs.HorizontalAlignment = HorizontalAlignment.Left;
labs.VerticalAlignment = VerticalAlignment.Top;
labs.Margin = new Thickness(599 + (17 * p), 206 + (17 * k), 0, 0);
labs.Name = "lab" + k + p;
labs.Width = 16;
labs.Height = 16;
list.Add(labs);
main.Children.Add(labs);
}
}
你增加的時候,就知道labs的name了,修改的時候,只需要判斷 name==你需要的name
@無限遐想: 他们不在一个方法里额
@無限遐想: Label怎么一个都没反应?
@雨逸凡尘: if(b.name==""){
....處理,就可以了。明白了吧。
}
能執行到這裡嗎?那你看你的name有沒有你需要的哦
@無限遐想: 调试显示lb.name等于"lab00",怎么会事?
@雨逸凡尘: 這 就對了。這個 是第一個哦
,你可以一直循環,一直找到你需要的哦
@無限遐想: 我刚也试了下,等它循环第二次,可是第二次循环完之后,页面上又是所有Label都显示,- -!
@雨逸凡尘: 這個 就與你的程式處理有關係了。你需要找的東西也找到了哦
foreach就可以啊
能否提供代码参考?谢谢
直接foreach:list就可以了。