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

时间:2011-11-05 03:25:32

标签: c# winforms user-interface

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

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

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窗体应用程序后,它显示了一个小白框,中间有一个红叉而不是图像。知道怎么解决吗?

2 个答案:

答案 0 :(得分:8)

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

例如,如果您的<project folder>/bin/Debug/app.exe位于:

<project folder>/bin/Image/1.jpg

图片必须位于:

Image


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

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

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

{{1}}

答案 1 :(得分:1)

如果你提供了错误的路径或断开的链接,如果编译器找不到图像,图片框会在其正文上显示一个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);

OR

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");