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 时,它​​不为空,您可以调用它的方法。但是,让我说这是错误的方法。您在表单的生命周期内保留一个 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
using 语句

于 2013-01-25T21:01:46.417 回答