我已经在我的面板中创建了一个picturebox,我想在本地用一个图像填充它。
这就是我到目前为止所做的,下面的代码只是我的面板创建代码的一小部分。
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窗体应用程序后,它只是显示了一个中间有一个红色十字的小白框,而不是图像。你知道怎么解决这个问题吗?
发布于 2011-11-05 03:37:01
使用picture.ImageLocation()
设置图像效果很好,但您使用的是相对路径。在构建.exe
之后,根据它的位置检查您的路径。
例如,如果您的.exe
位于:
<project folder>/bin/Debug/app.exe
图像必须位于:
<project folder>/bin/Image/1.jpg
当然,您可以只在设计时设置图像( PictureBox
属性页上的Image
属性)。
如果必须在运行时设置,则确保知道图像位置的一种方法是将图像文件添加到项目中。例如,在项目中添加一个新文件夹,将其命名为Image
。右键单击文件夹,选择“添加现有项目”并浏览到您的图像(确保文件过滤器设置为显示图像文件)。添加图像后,在属性表中将Copy to Output Directory
设置为Copy if newer
。
此时,将在构建应用程序时复制图像文件,您可以使用
picture.ImageLocation = @"Image\1.jpg";
发布于 2011-11-05 03:30:31
如果您提供了错误的路径或断开的链接,如果编译器找不到图像,图片框将在其主体上显示一个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");
https://stackoverflow.com/questions/8017978
复制