我在项目的资源文件夹中有一些图像,但我想从项目的这些资源文件中更改图片框
答案 0 :(得分:25)
考虑使用Properties.Resources.yourImage
Properties.Resources
包含您作为资源添加的所有内容(请参阅项目属性,资源标签)
除此之外,如果您将图像作为资源嵌入到项目中,则可以通过在嵌入图像的程序集上调用GetManifestResourceStream
来获取它们,例如
Stream imgStream =
Assembly.GetExecutingAssembly().GetManifestResourceStream(
"YourNamespace.resources.ImageName.bmp");
pictureBox.Image = new Bitmap(imgStream);
不要忘记将图像标记为嵌入式资源! (您需要在其属性窗口中为图像设置构建操作)
如果您发现从GetManifestResourceStream
继续回复null
,您可能会给出错误的名称。 (可能很难得到正确的名称)在集会上调用GetManifestResourceNames
;这将返回所有资源名称,您可以在列表中找到所需的名称。
答案 1 :(得分:2)
string img = null;
private void btnShow_Click(object sender, EventArgs e)
{
string imgName;
img = textBox1.Text;
imgName = "images/" + img + ".jpg";
if (imgName == null)
{
MessageBox.Show("no photo");
}
else if (imgName != null)
{
this.picBox1.Image = Image.FromFile("images/" + img + ".jpg");
}
}
答案 2 :(得分:1)
以下是从资源文件夹中获取图像的代码。通常我们将图像保存在资源文件夹中。但是有时我们只有我们的图像名称。在这种情况下,您只能使用图像名称从资源文件夹访问图像。
以下代码将展示它。
private System.Resources.ResourceManager RM = new System.Resources.ResourceManager("YourAppliacationNameSpace.Properties.Resources", typeof(Resources).Assembly);
PbResultImage.Image = (Image)RM.GetObject(YourPictureName);
谢谢。
答案 3 :(得分:0)
萨拉姆。
为我工作:
(Bitmap) Properties.Resources.ResourceManager.GetObject("ImageName");
答案 4 :(得分:0)