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

    }
}

Form1 コード:

Program.form2.pictureBox1.Refresh();

エラー:

Object reference not set to an instance of an object.

エラーが発生した理由がわからないので、Google に問い合わせましたが、何の助けもありませんでした。ご協力いただきありがとうございます。

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

このコード行は実行されず、null form2 が返されます。このように行を元に戻すだけで、問題を簡単に解決できます。

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