-1

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();

    }
}

表格 1 代码:

Program.form2.pictureBox1.Refresh();

错误:

Object reference not set to an instance of an object.

不知道为什么会出现错误,我已经问过谷歌,但没有任何帮助。谢谢你的帮助。

4

3 回答 3

0
Object reference not set to an instance of an object.

表示对象已null分配或未分配。

在运行或使用断点时将鼠标悬停在变量上,并检查map是否map.pictureBox1null

您需要确保map在使用之前将其设置为某些内容,并且从给定的代码中我无法给出错误的具体原因。

于 2013-10-13T00:16:58.127 回答
0

当您NullReferenceException尝试访问没有引用的对象时,通常会出现这种情况。一般来说,当对象是null

在这种情况下form2null

Application.Run是阻塞调用。当您调用此方法时,它会打开传入参数的表单并保持阻塞状态,直到表单关闭。所以,

form2 = new Form2();

这行代码没有执行,你得到一个空的 form2。您可以通过简单地还原这样的行来简单地解决问题,

form2 = new Form2();
Application.Run(new Form1());
于 2013-10-13T21:08:22.000 回答
0

Application.Run(new Form1());之前打过电话form2 = new Form2();

你需要放在form2 = new Form2(); 前面 Application.Run(new Form1());

我假设正在从 Form1 的该实例调用您的刷新代码。

于 2013-10-13T01:20:58.133 回答