结合字符串和资源

时间:2015-10-11 19:21:30

标签: c# winforms

我有一个数据集,其中包含一些产品及其图像文件名(例如" test.png")。 图像作为资源加载。如何正确设置图像位置?

DataRowView uRow = (DataRowView)comboBox1.SelectedItem;
DataRow row = uRow.Row;

pictureBox1.ImageLocation = Properties.Resources + row["logo"].ToString();

3 个答案:

答案 0 :(得分:1)

您可以按名称获取字符串资源:

string imageName = row["logo"].ToString();

// Strip off the extension, since it is not contained in the resource name.
imageName = Path.GetFileNameWithoutExtension(imageName);

pictureBox1.ImageLocation =
    Properties.Resources.ResourceManager.GetString(imageName);

如果您已将图像本身存储为资源,则可以按名称获取它们:

pictureBox1.Image =
    (Image)Properties.Resources.ResourceManager.GetObject(imageName);

答案 1 :(得分:0)

ImageLocation属性不支持直接使用资源。来自MSDN Docs

  

获取或设置要在其中显示的图像的路径或URL   图片框。

要加载作为资源的图片,请参阅Change PictureBox's image to image from my resources?

答案 2 :(得分:0)

如果将Resources.resx文件的属性Access modifier设置为FriendPublic
然后可以访问图像或其他资源而无需硬编码名称 Visual Studio将为每个资源生成一个类和属性

pictureBox1.Image = Properties.Resources.YourImage;