winform 出现序列不包含任何元素的错误

masxuhuabin 2012-08-27 02:21:23

var person = people[(lblIndex - 1) + pageCurrent * pageSize];
MYLabel lblName = (MYLabel)this.Controls.Find("lblName" + lblIndex, true).First();
lblName.Text = person.name;
lblName.Visible = true;

MYLabel lblDeptName = (MYLabel)this.Controls.Find("lblDeptName " + lblIndex, true).First();
lblDeptName.Text = person.deptName;
lblDeptName.Visible = true;

代码中,第一个lblName能获取到list people里的值,但是第二个lblDeptName就不能获取到,会报错序列不包含任何元素;
但是person.name和person.deptName都已经有值了,就是无法填写到lblDeptName中。
这是为什么?我重新做了demo也是这样报错。
不会有lblDeptName这个控件不存在的问题。我用其他list的时候能显示出来的。people这个是加了限定搜索后出来的人员列表。
...全文
198 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
masxuhuabin 2012-08-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

那说明 Controls中找不到,你好好核对一下名字,是否存在
[/Quote]
问题解决了,呵呵
是我自己写的时候弄错了。
(MYLabel)this.Controls.Find("lblDeptName " + lblIndex, true).
这段的引号里多了个空格。名字就出错了,晕倒。谢谢你了,不然我也没注意到这个名字
masxuhuabin 2012-08-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

那说明 Controls中找不到,你好好核对一下名字,是否存在
[/Quote]
我也在想是不是因为controls中找不到label,但是我用其他列表来进行做的时候就有数据
MYLabel lblName = (MYLabel)this.Controls.Find("lblName" + lblIndex, true).First();
这句的意思是说在这个页面的控件中按序列的第一个元素找到名字为lblName+lblIndex的控件吧。
lblindex在函数里是递加的,所以,名字是lblname1,lblname2,lblname3,
lblname4.这样子显示的。
bdmh 2012-08-27
  • 打赏
  • 举报
回复
那说明 Controls中找不到,你好好核对一下名字,是否存在

110,566

社区成员

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

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

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