1

イメージを C# プロジェクトに追加しようとしていますが、常に NULL に設定されており、'Snake_Game.Form3.GFX' が割り当てられていないため、常にデフォルト値が null になるという警告が表示されます。これが私がやろうとしたことです。

private Graphics GFX;

public Form3()
        {
            InitializeComponent();
            this.CreateGraphics();
        }

そして他の機能で私はこれを追加しました:

GFX.DrawImage(Bitmap.FromFile(@"C:\C#\Buton.png"), new Point(0, 0));

私は何をすべきか?

4

1 に答える 1

2

使用する前に Graphics オブジェクトを初期化する必要があります

    public Form3()
    {
        InitializeComponent();
        GFX = this.CreateGraphics();
    }

それを DrawImage に使用しようとすると、null ではなく、そのメソッドを呼び出すことができます。しかし、これは間違った方法であると言っておきましょう。貴重なシステム リソースを消費するフォームの存続期間中、Graphics オブジェクトを保持します。
使用する直前にオブジェクトを作成し、使用直後に破棄することをお勧めします

そのため、フォーム コンストラクターでの初期化とグローバル レベルでの宣言を削除します。

    public Form3()
    {
        InitializeComponent();
    }

そして、オブジェクト呼び出しが必要な場合

    using(Graphics GFX = this.CreateGraphics())
    {
         GFX.DrawImage(Bitmap.FromFile(@"C:\C#\Buton.png"), new Point(0, 0));

         .... // Other graphic code here

    } // This close brace destroy the GFX object releasing its resources.

あなたのためのいくつかの便利なリンク

ステートメントを使用したCreateGraphics

于 2013-01-25T21:01:46.417 に答える