使用变量作为资源名称的一部分

时间:2019-12-16 14:46:02

标签: c# resources

我有一个名为Picturebox的{​​{1}},正在尝试在计时器中设置其背景图片。每次计时器计时时,我都要更改图片框的图像。

我正在尝试使用变量作为资源名称的一部分。图像文件名的示例是loading1和loading2。

我想使用变量pictureBoxLoadingMsg(它将是一个递增的整数,例如1、2、3)作为资源名称的一部分。我尝试将其串联为“正在加载”(资源名称的第一部分),但是代码有错误并且无法运行-它说:

  

资源不包含加载的定义

i

2 个答案:

答案 0 :(得分:1)

您需要编写密钥,然后查找值:

pictureBoxLoadingMsg.Image = (Image)Properties.Resources.ResourceManager.GetObject($"loading{i}"]);

其中i是运行索引,"loading"是密钥的固定部分。 GetObject将返回一个对象,因此您需要转换为实际类型。

也请阅读并考虑文档中的说明:ResourceManager.GetObject(string)

答案 1 :(得分:0)

信息太少了!

  • pictureBoxLoadingMsg是什么类型?
  • 错误表明问题出在资源上,资源做对了吗?

尝试一下:

pictureBoxLoadingMsg.Image = string.Format({0}{1}, Properties.Resources.loading, i);