user175084
user175084

Reputation: 4630

Loading image from code using relative path in Windows Forms

I have an Image in my application and I have a picture in my 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);

But I just want to use a relative path and not the full path like above.

For example something like this:

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

and cont. ..../ not working. Any suggestions?

Upvotes: 6

Views: 33937

Answers (2)

Abdul Khaliq
Abdul Khaliq

Reputation: 2285

My issue was solved after this solution:

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

Upvotes: 2

agent-j
agent-j

Reputation: 27913

For my program, Path.GetDirectoryName (Assembly.GetExecutingAssembly().Location) returns C:\code\test\Junk\bin\Debug.

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

Of course, usually you would embed the resources in your assembly unless you want to change them without a recompile.

Upvotes: 23

Related Questions