如何使用ImageLocation将图像放入我的图片框?

我在我的面板中创建了一个图片框,我想在本地填充图像。

这是我到目前为止所做的,以下代码只是我的面板创建代码的一小部分。

PictureBox picture = new PictureBox { Name = "pictureBox", Size = new Size(100, 50), Location = new Point(14, 17) }; p.Controls.Add(picture); picture.ImageLocation = @"..\Image\1.jpg"; 

它确实有效但不完全,因为在我启动了我的c#windows窗体应用程序后,它显示了一个小的白色框,中间有一个红叉而不是图像。 知道怎么解决吗?

使用picture.ImageLocation()设置图像工作正常,但您使用的是相对路径。 在构建之后,请检查.exe的位置。

例如,如果您的.exe位于:

/bin/Debug/app.exe

图像必须位于:

/bin/Image/1.jpg


当然,您可以在设计时设置图像( PictureBox属性表上的Image属性)。

如果必须在运行时设置它,确保知道图像位置的一种方法是将图像文件添加到项目中。 例如,向项目添加一个新文件夹,将其命名为Image 。 右键单击该文件夹,选择“添加现有项”并浏览到您的图像(确保文件filter设置为显示图像文件)。 添加图像后,在属性表中将“ Copy to Output DirectoryCopy if newer

此时,在构建应用程序时将复制映像文件,您可以使用

 picture.ImageLocation = @"Image\1.jpg"; 

如果您提供错误的路径或断开的链接,如果编译器找不到图像,图片框将在其正文上显示X图标。

 PictureBox picture = new PictureBox { Name = "pictureBox", Size = new Size(100, 50), Location = new Point(14, 17), Image = Image.FromFile(@"c:\Images\test.jpg"), SizeMode = PictureBoxSizeMode.CenterImage }; p.Controls.Add(picture); 

要么

 PictureBox picture = new PictureBox { Name = "pictureBox", Size = new Size(100, 50), Location = new Point(14, 17), ImageLocation = @"c:\Images\test.jpg", SizeMode = PictureBoxSizeMode.CenterImage }; p.Controls.Add(picture); 

我不确定你在你的文件夹结构中放置图像的位置,但你可以找到下面的路径

  picture.ImageLocation = Path.Combine(System.Windows.Forms.Application.StartupPath, "Resources\Images\1.jpg");