我在Windows窗体上有一组图像。我想在检查对应于图像的复选框时将图像添加到数组。每次我检查框时都会显示“FileNotFoundException未处理。”
public partial class FrmSignage : Form
{
Image[] images = new Image[12];
int i = 0;
public FrmSignage()
{
InitializeComponent();
}
private void chkRadiation_CheckedChanged(object sender, EventArgs e)
{
images[i] = Image.FromFile("radiation.gif");
i++;
}
错误被抛出“images [i] = Image.FromFile(”radiation.gif“);”。文件名是正确的。我能错过什么?
提前致谢。
答案 0 :(得分:3)
文件名是正确的。
您还需要提供正确的文件路径。文件名可能正确,但当前目录不是您所期望的。
默认情况下,它会尝试从与.exe相同的文件夹加载图像 - 即:Project\bin\Debug
,但这可能会在运行时更改。加载图像而不指定路径是不安全的,因为当前目录可以更改,因此您应该指定完整路径。
System.IO中的类,例如Path,为构建正确的路径提供了相当多的功能。
答案 1 :(得分:0)
你应该确保路径“radiation.gif”有意义。这将始终检查运行可执行文件的目录。
答案 2 :(得分:0)
问题是找不到相对于正在运行的代码的文件。即使文件存在于您的环境中,因为它是相对路径,它必须相对于正在运行的代码存在。
执行此操作的一种方法是假设您将图像作为项目项,您可以将其构建操作更改为Content
,并将副本设置为Copy if Newer
的输出目录(这些选项可以可在项目的“属性”窗口中找到)
您还应该为代码添加一些错误处理,因为即使您确保它在正确的位置,也会阻止用户删除图像?