2012-09-04 35 views
0

我正在做一个业余爱好国际象棋项目,当我加载图片时,它会抛出一个无法找到图片的异常。我知道情况并非如此,它在之前以及当我使用它的方法加载它们时起作用。它们位于正确的位置,文件路径正确。起初,代码使用了Bitmap类而不是Image类,它们给出了相同的结果。在班级定义中加载图片时出现错误

我在类定义中加载图像的主要原因是我多次使用大多数图像,我想确保每个图像只加载一次。

这显示了类的定义和第一个按钮,但每个图片都加载了一块。

public partial class PieceButton : Button 
{ 
    private static readonly Image blackBishop = Image.FromFile("images/black_bishop.gif"); 

稍后,我将在片段移动时将加载的图像应用于按钮。 该类继承Button,因为默认的按钮行为非常有用。 图像是.gif,因为然后按钮背景保持可见(字段是白色或黑色)。

所以我的问题是:如何在类定义中正确加载这些图像?

+0

你能后从当你在一个方法加载它的代码“加载一次图像”的行为? –

+1

*“它抛出一个例外,图像无法找到,我知道情况并非如此”* - 对吗?我倾向于相信运行时。你意识到你正在从一个相对路径静态初始化这个对象,对吗? –

+2

此外(这并不意味着作为对此问题的答案,而是为您提供一种替代路径),您可能需要考虑将图像作为Resources.resx中的资源添加。如果您使用的是Visual Studio,那么比上面的尝试要容易得多。 –

回答

1

考虑将图像作为资源添加到Resources.resx,并让Visual Studio担心生成代码以实际将底层数据转换为Image对象。这具有许多优点,最大的优点是任何问题(如图像不存在)都会在编译时被捕获,因为VS会提前为您生成Properties.Resources.whatever。

你也会得到你的愿望

相关问题