1

我有一个Windows Forms项目。我有一个Resources文件夹,我想使用相对路径使用那里的文件。这是我的项目树的打印屏幕

在此处输入图像描述

如您所见,我有一个文件夹UserControls,其中FileExplorer.cs包含 aa openFileDialog+ pictureBoxForms我在文件夹中的一些表单中使用此控件。情况是,在Resources文件夹中我有这个T380.jpg图像,我想默认加载,但现在我只能通过插入完整路径来完成它。这是我尝试加载图像的代码:

 private void FileExplorer_Load(object sender, EventArgs e)
        {
            pictureBox1.ImageLocation = @"ShoesUnlimitedAdmin\Resources\T380.jpg";
            pictureBox1.Load();
        }

我使用Load用户控件的事件来加载我的图像,但它仅在我设置图像的完整路径时才有效C:\\...,等等。如何Resources使用相对路径指向项目的文件夹?

4

1 回答 1

2

如果这些图像很小,那么倾向于将它们作为资源添加到可执行文件中,这样您就可以在代码中使用 Properties.Resources 而不必在用户的机器上部署文件。使用项目 + 属性、资源。单击“添加资源”按钮上的箭头并选择添加现有文件。

如果它们很大(超过几兆字节),那么您确实希望将它们部署为单独的文件。您可以使用 EXE 程序的位置找到它们,这是一个帮助方法,为了清楚起见,拼写出来:

    public static string GetResourcePath(string filename) {
        string exepath = System.Reflection.Assembly.GetEntryAssembly().Location;
        string exedir = System.IO.Path.GetDirectoryName(exepath);
        string resdir = System.IO.Path.Combine(exedir, "Resources");
        return System.IO.Path.Combine(resdir, filename);
    }
于 2013-02-04T14:13:23.317 回答