好的,让我再解释一下 我的问题是 我想要显示图像。但我希望这没有opendialogfile 我试过这个:
pictureBox1.Image = Image.FromFile("C:\\Users\\Abdullah\\Documents\\Visual Studio 2013\\Projects\\Maker\\Maker\\add.png");// it works
但我不想这样做,因为它会在部署时导致错误。我想做的是:
pictureBox1.Image = Image.FromFile(“add.png”); //因为这张图片已经在项目文件夹中
在这种情况下,它显示错误,找不到文件 现在希望所以我解释了它:)
答案 0 :(得分:1)
假设您正在对图像的路径进行硬编码并且图像确实存在于该路径中,那么您应该记住在使用类似该字符串的常量字符串时转义反斜杠。
尝试
pictureBox1.ImageLocation = @"C:\Users\Abdullah\Documents\Visual Studio 2013
\Projects\Maker\Maker\Resources\add.png";
或
pictureBox1.ImageLocation = "C:\\Users\\Abdullah\\Documents\\Visual Studio 2013
\\Projects\\Maker\\Maker\\Resources\\add.png";
(警告字符串分为两行以便于阅读。它应该在一行中)
请参阅How do I write a backslash?
修改强> 根据您在下面的评论,似乎您的项目中始终存在Image文件夹(当它将被部署到客户机器时),然后您可以写这样的东西
pictureBox1.ImageLocation = Path.Combine(Application.StartupPath, "Images", "add.png");
或
string imageFile = Path.Combine(Application.StartupPath, "Images", "add.png");
pictureBox1.Image= Image.FromFile(imageFile);
但回顾你的例子:它是图像还是资源?