在Windows窗体应用程序中使用图像的相对路径

时间:2013-10-25 21:14:31

标签: c# winforms

我已经搜索了我的问题的答案并尝试了许多解决方案,但无法解决它

我有一个Windows窗体应用程序,我必须动态地在图片框中设置图像,我已成功使用以下代码执行此操作

    pictureBox2.Image = Image.FromFile("C:/Users/user/Documents/College Work/4th Year/Advanced Net/Projects/Game/Resources/" + Quiz1FromFile.Q1Ans + ".jpg"););

如何修改上述路径,以便在移动项目位置时它可以正常工作。 "游戏"是Windows窗体项目的名称

2 个答案:

答案 0 :(得分:1)

最好的方法是在项目属性的设置标签中add an ApplicationSettings 调用此属性,例如"ImagePath",并将此属性设置为默认开发路径。

执行此操作后,您将在app.config文件中创建一个条目(在编译时YourApplicationName.exe.Config),并带有默认路径的值。

<applicationSettings>
    <YourAppNamespace.Properties.Settings>
        <setting name="ImagePath" serializeAs="String">
            <value>C:/Users/user/Documents/College Work/4th ......</value>
        </setting>
    <(YourAppNamespace.Properties.Settings>
</applicationSettings>

此文件将随您的应用程序一起分发,您可以使用部署过程更改该路径。

在代码中,您可以使用

引用存储在配置文件中的路径
string imagePath = Properties.Settings.Default.ImagePath;
pictureBox2.Image = Image.FromFile(Path.Combine(imagePath, Quiz1FromFile.Q1Ans,  ".jpg"));

这样,您就不会硬编码应用程序内图像文件夹的路径,也不需要处理相对路径。您只需要在目标计算机上将此值设置为存储图像文件。

答案 1 :(得分:0)

你需要做两件事。 首先,文件名应该是与可执行文件的相关路径。 第二件事是你需要确保图像实际存在。 您可以使用post build事件将图像复制到DestinationFolder路径。

看看here