我知道此问题之前已被提及(并已回答)。但是,没有一个解决方案适合我。这可能是由于我的无能,伏都教诅咒或者我想念的简单明显的事情。
下面是拼图的所有相关部分的屏幕截图:
Screen capture http://dinosaur-island.com/PlantPictureBoxScreenCap.jpg
正如您所看到的,有许多植物作为资源加载到Images文件夹中。 有一个带有名为“PlantPicture”的图片框的表单。有字符串,我知道它有一个很好的路径(因为我在调试器中检查过它):
PicPath = PicPath+".bmp";
Screen capture http://dinosaur-island.com/PlantDebugger.jpg
我尝试过多种加载,投射等方式。
如果你怜悯并再给它一次,我会很感激任何建议。谢谢!
答案 0 :(得分:42)
路径应该是:"Images\a.bmp"
。 (注意缺少一个前导斜杠,而斜杠是后退斜杠。)
然后:
pictureBox1.Image = Image.FromFile(@"Images\a.bmp");
我只是试着确保它的确有效。这是你得到的另一个答案 - “永远复制”。
答案 1 :(得分:11)
好的......所以首先需要在项目中导入图像
1)在表单设计中选择图片框
2)打开PictureBox任务(这是在图片框边缘右侧固定的小箭头)
3)点击“选择图片...”
4)选择第二个选项“Project resource file:”(此选项将创建一个名为“Resources”的文件夹,您可以使用Properties.Resources访问该文件夹)
5)点击导入并从您的计算机中选择您的图像(现在,将在步骤4中创建的Resources文件夹中发送与图像同名的图像副本)
6)点击确定
现在图像在您的项目中,您可以将它与属性命令一起使用。当您想要从图片框中更改图片时,只需输入以下代码:
pictureBox1.Image = Properties.Resources.myimage;
注意:myimage代表图像的名称...在资源之后键入点后,在您的选项中它将是您导入的图像文件
答案 2 :(得分:6)
这取决于您的文件路径。对我来说,当前目录是[project]\bin\Debug
,所以我不得不两次移动到父文件夹。
Image image = Image.FromFile(@"..\..\Pictures\"+text+".png");
this.pictureBox1.Image = image;
要查找当前目录,您可以创建一个名为label2的虚拟标签并写下:
this.label2.Text = System.IO.Directory.GetCurrentDirectory();
答案 3 :(得分:3)
将“复制到输出目录”设置为“始终复制”或“如果更新则复制”可能对您有所帮助。
您的PicPath是一个相对路径,在加载图像时会在某个时间转换为绝对路径。
如果在Debug中使用Path.GetFullPath(PicPath)
,很可能会看到指定位置上没有图像。
答案 4 :(得分:2)
接受的答案有一个主要缺点!
如果您按照PictureBox 锁定图像的方式加载图像,那么如果您尝试对该图像执行任何操作,您将收到错误消息在另一个应用程序中使用的图像!
这article show solution in VB
这是C#实现
FileStream fs = new System.IO.FileStream(@"Images\a.bmp", FileMode.Open, FileAccess.Read);
pictureBox1.Image = Image.FromStream(fs);
fs.Close();