Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Winforms Visual Studio 2010项目-can';t调整相对路径_Winforms_Visual Studio 2010_Relative Path - Fatal编程技术网

Winforms Visual Studio 2010项目-can';t调整相对路径

Winforms Visual Studio 2010项目-can';t调整相对路径,winforms,visual-studio-2010,relative-path,Winforms,Visual Studio 2010,Relative Path,我有一个Windows窗体项目。我有一个Resources文件夹,我想使用相对路径使用那里的文件。这是我的项目树的打印屏幕 您可能会看到,我有文件夹UserControls,其中有FileExplorer.cs它包含aaopenFileDialog+pictureBox。我在forms文件夹中的一些表单中使用此控件。这种情况是,在Resources文件夹中,我有一个T380.jpg图像,默认情况下我想加载它,但现在我只能通过插入完整路径来加载它。以下是我尝试加载图像的代码: private

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

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

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

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

如果这些图像较小,则倾向于将它们作为资源添加到可执行文件中,以便您可以使用代码中的属性资源,而不必将文件部署到用户的计算机上。使用Project+属性和资源。单击“添加资源”按钮上的箭头,然后选择添加现有文件

如果它们很大(超过几兆字节),那么您确实需要将它们作为单独的文件进行部署。您可以通过使用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);
    }

您将
BuildAction
设置为什么?这是MDI表单,因此如果我正确回答了您的问题,答案应该是我的
Forms
目录中的MDI主表单。否-右键单击解决方案资源管理器中的T380.jpg文件,选择
Properties…
,每个文件都有一个
BuildAction
属性。这决定了在构建时VS对文件的处理方式。可能应该设置为
Content
而不是
Resource
()我的错,我是新来的对不起。你说得对,它被设置为
内容
。我必须换吗?以及如何构建我的相对路径?如果更新,则设置为
Copy
Copy Always
?这将决定是否将文件复制到bin/debug或bin/release文件夹的“Resources”子文件夹。它们的大小小于300kbHans,我的应用程序中也有类似问题。我的一些图像文件是在运行时生成的,因此不能设置为项目资源。我已经验证了它们是在
Debug
文件夹中的应该位置创建的。您能否提供一些见解,解释为什么相对路径只能用于已标记为资源的文件?