Program.cs代码:
namespace _1
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
///
public static Form2 form2;
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
form2 = new Form2();
}
}
Form1代码:
Program.form2.pictureBox1.Refresh();
错误:
Object reference not set to an instance of an object.
不确定为什么会出现错误,我已经问谷歌而没有任何帮助。 谢谢你的帮助。
答案 0 :(得分:0)
Object reference not set to an instance of an object.
表示对象为null
,或未分配。
在运行时将鼠标悬停在变量上或使用断点,并检查map
或map.pictureBox1
是null
您需要确保在使用之前将map
设置为某些内容,并且从给定的代码中我无法给出错误的具体原因。
答案 1 :(得分:0)
您在Application.Run(new Form1());
form2 = new Form2();
您需要先将form2 = new Form2();
放在 Application.Run(new Form1());
之前。
我假设您正在从Form1的实例调用刷新代码。
答案 2 :(得分:0)
当您尝试访问没有引用的对象时,通常会出现NullReferenceException
。一般来说,当对象为null
时。
在这种情况下,form2
为null
。
Application.Run
是一个阻止通话。当您调用此方法时,它会打开传入参数的表单并在此处保持阻塞状态,直到表单关闭。所以,
form2 = new Form2();
这行代码没有执行,你得到一个null form2。您可以通过简单地还原这样的行来解决问题,
form2 = new Form2();
Application.Run(new Form1());