2011-06-28 52 views
3

我在我的应用程序有一个形象,我有一张照片在我的WinForms加载图像格式

public static string Correct_Icons = @"C:\Users\xyz\Documents\Visual Studio 2008\Projects\FileShareMgmt\FileShareMgmt\Resources\Correct.png"; 
public static string warning_Icon = @"C:\Users\xyz\Documents\Visual Studio 2008\Projects\FileShareMgmt\FileShareMgmt\Resources\Warning.png"; 


cell.Value = Image.FromFile("Resources/warning_Icon); 

,但我想只是想相对路径,而不是完整的路径。

例如,我想这

public static string Correct_Icons = "\Resources\Correct.png"; 

和续 ..../ 不工作

+2

你为什么不嵌入您的组件内的图标? –

+0

检查此链接一次http://stackoverflow.com/questions/5608684/how-to-use-relative-path-to-resources-folder-in-c-window-form-application – Rahul

+0

我同意乔恩。你应该嵌入图像,尤其是图标。不这样做的唯一原因是如果你想动态修改图像。 – Icemanind

回答

15

对于我的程序,Path.GetDirectoryName (Assembly.GetExecutingAssembly().Location)回报 C:\code\test\Junk\bin\Debug

cell.Value = Image.FromFile(
    Path.Combine (
    Path.GetDirectoryName (Assembly.GetExecutingAssembly().Location), 
    "Resources/warning_Icon")); 

当然,除非您想在没有重新编译的情况下更改它们,否则通常会将资源嵌入到程序集中。

+1

先生,你只有一个“。 – radbyx

0

我的问题是这样的解决方案后问题:

string[] s = { "\\bin" }; 
string path = Application.StartupPath.Split(s, StringSplitOptions.None)[0] + "\\Images\\On24.png";