这里有类似的问题,但没有回答这个具体问题。我正在创建一个按钮对象来动态地修改按钮上的图像。但是使用下面的代码,当我尝试在按钮上设置Image时,我会得到一个“对象引用没有设置为对象的实例”。
Button button3;
button3 = (Button)this.Controls["btnDay" + ctrlsFwd.ToString("00")];
button3.Image = Resources.BookingAllDay;任何帮助都很感激!别紧张--这是我的第一篇帖子:-)
**更新-一个面部表情的时刻。按钮在面板中,所以我需要参考pnlCalendar.Controls而不是this.Controls。
发布于 2013-11-19 14:34:07
由于这一点,button3 = (Button)this.Controls["btnDay" + ctrlsFwd.ToString("00")];是访问控件的一种完全有效的方法,并且不起作用,要么不存在具有该名称的控件,要么更有可能该控件位于容器中。无论哪种方式,在this中搜索它都不会找到它,不管您尝试了多少种不同的方法来找到它。
发布于 2013-11-19 14:08:58
这样做的一种方法是:
button3 = (Button)this.Controls
.Find("btnDay" + ctrlsFwd.ToString("00"))
.FirstOrDefault();另一种做法是:
button3 = this.Controls.OfType<Button>()
.Where(b => b.Name == "btnDay" + ctrlsFwd.ToString("00"))
.FirstOrDefault();正如Stefan所指出的,检查null
if (button3 == null) { return; }因为可以发生。
https://stackoverflow.com/questions/20073711
复制相似问题