在Visual c#中使用字符串从资源中加载图像

本文关键字:资源 加载 图像 字符串 Visual | 更新日期: 2023-09-27 17:52:54

如果我有一些资源,例如card1.png, card2.png等,我想将它们加载到picBox中,但只加载正确的图像例如,像

这样的东西
int cardNum = rn.Next(0,cardMax);
picCard.Image = Properties.Resources."card"+cardNum+".png";

显然这不起作用,但我该如何做我想做的(加载正确的资源后构建资源名称成一个字符串)

在Visual c#中使用字符串从资源中加载图像

直接使用ResourceManager代替在Resources类中生成的属性:

string resName = $"card{cardNum}.png"; // Check the correct name in the .resx file. By using the wizards the extension is omitted, for example.
picCard.Image = (Image)Properties.Resources.ResourceManager.GetObject(resName);

尝试使用:

var rm = new System.Resources.ResourceManager(((System.Reflection.Assembly)System.Reflection.Assembly.GetExecutingAssembly()).GetName().Name + ".Properties.Resources", ((System.Reflection.Assembly)System.Reflection.Assembly.GetExecutingAssembly()));
Image img = (Bitmap)rm.GetObject("resourcesimagename.jpg");