关于winform获取当前窗体的Label控件,为什么获取不到???

gd6321374 2015-12-21 10:41:42

如图,我想获取当前窗体的所有Label,用如下代码获取,我用MessageBox测试,就是进不去执行MessageBox,为什么就是获取不了窗体的Label呢???第一次使用
请指教,谢谢啊啊啊啊!!!!!

foreach (System.Windows.Forms.Control item in this.Controls)
{
if (item is System.Windows.Forms.Label)
{
MessageBox.Show("1111111111111111111111111111111111");
control = item as System.Windows.Forms.Label;
if (control == null)
{
return;
}


if (this.userName[inlneUser] == control.Text)
{
UpLine(inlneUser);
}
}
}
...全文
474 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
gd6321374 2015-12-22
  • 打赏
  • 举报
回复
在这里谢谢各位了。
gd6321374 2015-12-22
  • 打赏
  • 举报
回复
引用 4 楼 lovelj2012 的回复:
foreach (System.Windows.Forms.Control item in this.Controls){}
//这样遍历,如果窗体上的Label没有嵌套,是ok的
//如果Label是放在Panel、Group或者其他容器控件中,这么遍历你是找不到Label滴,需要递归遍历
谢谢各位,我明白了,我是放在GroupBox里面的,应该是先找到组框,再从组框找到label。
EdsionWang 2015-12-22
  • 打赏
  • 举报
回复
看看你的Label放在哪些容器控件上吧。在容器控件上去遍历
江南小鱼 2015-12-22
  • 打赏
  • 举报
回复
foreach (System.Windows.Forms.Control item in this.Controls){}
//这样遍历,如果窗体上的Label没有嵌套,是ok的
//如果Label是放在Panel、Group或者其他容器控件中,这么遍历你是找不到Label滴,需要递归遍历
BobHe 2015-12-22
  • 打赏
  • 举报
回复
lable不一定在窗体上,会存在嵌套的,可能存在很多容器的。
destiny_03 2015-12-22
  • 打赏
  • 举报
回复
label不一定是直接放在窗体上的,可能是放在panel之类的控件上的,你遍历出来的可能全是些panel groupbox之类的东西。可以在.designer.cs里面看到你要找的label的control是添加到什么控件的Controls里面去了。
Poopaye 2015-12-21
  • 打赏
  • 举报
回复
你先搞清楚this是什么

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧