我使用此代码:
NewDesign.CardImage.Image.Save(System.IO.Path.GetDirectoryName(NewDesign.SaveFileDialog1.FileName) + "\" + My.Settings.SaveLoc + "_cardimage" + ".png")
My.settings.SaveLoc
字面上只是一个包含文件名的字符串,例如:test
。
使用以下命令设置值:
My.Settings.SaveLoc = System.IO.Path.GetFileName(SaveFileDialog1.FileName)
它在过去有效,但突然间突然停止了工作。
我使用了断点,SaveFileDialog1.FileName
正是预期的位置,在这种情况下"R:\My Pictures\Test Folder"
,SaveLoc
包含我期望的值。
但是当它试图保存图像时,它给了我"Object reference not set to an instance of an object"
的错误,老实说,我不知道我可能做错了什么。
答案 0 :(得分:1)
NewDesign.CardImage.Image几乎肯定没有初始化。也许这种控件不能以这种方式访问,直到创建句柄。一些图像容器有这样的坏行为。
顺便提及,
NewDesign可能是您放置SaveFileDialog的表单。通过表单名称访问非静态成员的能力是VB6兼容性函数,最好不要使用。