首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >this.Controls返回空

this.Controls返回空
EN

Stack Overflow用户
提问于 2013-11-19 14:07:46
回答 2查看 1.4K关注 0票数 1

这里有类似的问题,但没有回答这个具体问题。我正在创建一个按钮对象来动态地修改按钮上的图像。但是使用下面的代码,当我尝试在按钮上设置Image时,我会得到一个“对象引用没有设置为对象的实例”。

代码语言:javascript
复制
Button button3;
button3 = (Button)this.Controls["btnDay" + ctrlsFwd.ToString("00")];
button3.Image = Resources.BookingAllDay;

任何帮助都很感激!别紧张--这是我的第一篇帖子:-)

**更新-一个面部表情的时刻。按钮在面板中,所以我需要参考pnlCalendar.Controls而不是this.Controls。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-19 14:34:07

由于这一点,button3 = (Button)this.Controls["btnDay" + ctrlsFwd.ToString("00")];是访问控件的一种完全有效的方法,并且不起作用,要么不存在具有该名称的控件,要么更有可能该控件位于容器中。无论哪种方式,在this中搜索它都不会找到它,不管您尝试了多少种不同的方法来找到它。

票数 1
EN

Stack Overflow用户

发布于 2013-11-19 14:08:58

这样做的一种方法是:

代码语言:javascript
复制
button3 = (Button)this.Controls
    .Find("btnDay" + ctrlsFwd.ToString("00"))
    .FirstOrDefault();

另一种做法是:

代码语言:javascript
复制
button3 = this.Controls.OfType<Button>()
    .Where(b => b.Name == "btnDay" + ctrlsFwd.ToString("00"))
    .FirstOrDefault();

正如Stefan所指出的,检查null

代码语言:javascript
复制
if (button3 == null) { return; }

因为可以发生

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20073711

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档