首页 新闻 赞助 找找看

WPF 获取动态添加控件的值

0
悬赏园豆:30 [已解决问题] 解决于 2012-03-29 17:09

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进行操作,要怎么写?

问题补充:

最好写出代码参考

雨逸凡尘的主页 雨逸凡尘 | 初学一级 | 园豆:7
提问于:2012-03-29 12:35
< >
分享
最佳答案
0

for(int i=0;i<lst.count;i++){

   label a=lst[i] as label

if(a!=null){

在這裡可以操作a,並且a,就是你加入的label

}

}

收获园豆:30
無限遐想 | 老鸟四级 |园豆:3740 | 2012-03-29 13:03

for (int i = 0; i < list.Count; i++)
{
Label lb = list[i] as Label;
if (lb != null)
{

....
}
}

我按你这个方法写了之后是有用,但不是我要的效果啊,这样做了之后,所有的Label都同时变化,显示的东西都一样的,我想要的效果是执行一次,第一个Label显示数据,执行第二次,第二个Label显示数据,以此类推,有什么好法子?

雨逸凡尘 | 园豆:7 (初学一级) | 2012-03-29 14:19

@雨逸凡尘: 不可能同時變化,你 操作了哪個?哪個變化哦。除非你寫錯了。你在if(lb!+null){

這裡再加一些判斷,判斷是否你你需要修改的label,如果是就修改,如果不是就不要修改。

可以通過,label。name 進行判斷哦。

}

無限遐想 | 园豆:3740 (老鸟四级) | 2012-03-29 15:04

@無限遐想: 怎么判断是否是我要修改的Label?

雨逸凡尘 | 园豆:7 (初学一级) | 2012-03-29 15:13

@雨逸凡尘: lb.name是否等於你要修改的。如果是,就修改,如果不是就不修改

無限遐想 | 园豆:3740 (老鸟四级) | 2012-03-29 15:18

@無限遐想: O__O"…我要修改的怎么写?

雨逸凡尘 | 园豆:7 (初学一级) | 2012-03-29 15:26

@雨逸凡尘: 

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

無限遐想 | 园豆:3740 (老鸟四级) | 2012-03-29 15:29

@無限遐想: 他们不在一个方法里额

雨逸凡尘 | 园豆:7 (初学一级) | 2012-03-29 15:34

@雨逸凡尘: 我知道。

for (int i = 0; i < list.Count; i++)
{
Label lb = list[i] as Label;
if (lb != null)
{

   if(b.name==""){

....處理,就可以了。明白了吧。

}
}
}

無限遐想 | 园豆:3740 (老鸟四级) | 2012-03-29 15:35

@無限遐想: Label怎么一个都没反应?

雨逸凡尘 | 园豆:7 (初学一级) | 2012-03-29 15:41

@雨逸凡尘: if(b.name==""){

....處理,就可以了。明白了吧。

}

能執行到這裡嗎?那你看你的name有沒有你需要的哦

無限遐想 | 园豆:3740 (老鸟四级) | 2012-03-29 15:45

@無限遐想: 调试显示lb.name等于"lab00",怎么会事?

雨逸凡尘 | 园豆:7 (初学一级) | 2012-03-29 15:51

@雨逸凡尘: 這 就對了。這個 是第一個哦

,你可以一直循環,一直找到你需要的哦

無限遐想 | 园豆:3740 (老鸟四级) | 2012-03-29 15:57

@無限遐想: 我刚也试了下,等它循环第二次,可是第二次循环完之后,页面上又是所有Label都显示,- -!

雨逸凡尘 | 园豆:7 (初学一级) | 2012-03-29 16:01

@雨逸凡尘: 這個 就與你的程式處理有關係了。你需要找的東西也找到了哦

無限遐想 | 园豆:3740 (老鸟四级) | 2012-03-29 16:03
其他回答(2)
0

foreach就可以啊

az235 | 园豆:8483 (大侠五级) | 2012-03-29 12:47

能否提供代码参考?谢谢

支持(0) 反对(0) 雨逸凡尘 | 园豆:7 (初学一级) | 2012-03-29 12:54
0

直接foreach:list就可以了。

悟行 | 园豆:12559 (专家六级) | 2012-03-29 12:59
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册