问题描述
privatevoidpictureBox1_Click(objectsender,EventArgse){intb=(int)pictureBox1.Image.Tag;MessageBox.Show(b.ToString());}程序运行时报错“未将对象引用设置到对象的实例。”我在设计器里手动在pictureBox1.Image.Tag写了1的啊怎么回事啊?不懂。我想用tag比较两张图片是都一样。
解决方案
解决方案二:
你的image没有加载到pictureBox1中,哪里来的pictureBox1.Image.Tag也就是说你的pictureBox1.Image==null
解决方案三:
伤不起。直接pictureBox1.Image.Tag.ToString()。
解决方案四:
不是啊。我的picturebox有图片的,是在设计器那里调的。
解决方案五:
intb=int.Parse(pictureBox1.Tag.ToString());MessageBox.Show(b.ToString());===设计器里手动在pictureBox1.Image.Tag,这个不可能实现吧,是设置了pictureBox1.Tag,而不是pictureBox1.Image.Tag
解决方案六:
就是这样
解决方案七:
http://7890613.blog.163.com/album/#m=2&aid=232657778&pid=7385925878图片失效了。。。
解决方案八:
这个就是pictureBox1的Tag属性,而不是pictureBox1.Image.Tag的属性呀
解决方案九:
pictureBox1.Tag=???privatevoidpictureBox1_Click(objectsender,EventArgse){intb=(int)pictureBox1.Image.Tag;MessageBox.Show(b.ToString());}
解决方案十:
引用7楼hztltgg的回复:
这个就是pictureBox1的Tag属性,而不是pictureBox1.Image.Tag的属性呀
picturebox属性里有一个tag和image,image里面还有一个tag。如我之前的图设置的,那是哪个tag被设置成1了?
解决方案十一:
这个可能本身就是个陷阱,我试了下,确实可以设置tag,不过保存关闭后,重新打开项目,tag还是空的,没有保存进去。自动生成的代码里也只有this.pictureBox1.Image=((System.Drawing.Image)(resources.GetObject("pictureBox1.Image")));这么一句,没有设置tag的地方。手工在后面加一句this.pictureBox1.Image.Tag=1;可以实现你的功能,不过一旦修改控件,就会自动重新生成窗体代码,这句话就给删了
解决方案十二:
恩,谢谢啦,大概搞懂了。
解决方案十三:
tag里存的是啥数据呢