如何用program.cs刷新picturebox?

时间:2013-10-12 23:51:18

标签: c# winforms nullreferenceexception

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.

不确定为什么会出现错误,我已经问谷歌而没有任何帮助。 谢谢你的帮助。

3 个答案:

答案 0 :(得分:0)

Object reference not set to an instance of an object.

表示对象为null,或未分配。

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

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

答案 1 :(得分:0)

您在Application.Run(new Form1());

之前致电form2 = new Form2();

您需要先将form2 = new Form2(); 放在 Application.Run(new Form1());之前。

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

答案 2 :(得分:0)

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

在这种情况下,form2null

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

form2 = new Form2();

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

form2 = new Form2();
Application.Run(new Form1());