我想像这样加载图像:
void info(string channel) { //Something like that channelPic.Image = Properties.Resources.+channel }
因为我不想做
void info(string channel) { switch(channel) { case "chan1": channelPic.Image = Properties.Resources.chan1; break; case "chan2": channelPic.Image = Properties.Resources.chan2; break; } }
这样的事情可能吗?
您可以始终使用System.Resources.ResourceManagerwhich返回ResourceManager此类使用的缓存。由于chan1和chan2代表两个不同的图像,您可以使用System.Resources.ResourceManager.GetObject(string name),它返回一个与您的输入和项目资源相匹配的对象
System.Resources.ResourceManager
ResourceManager
chan1
chan2
System.Resources.ResourceManager.GetObject(string name)
例
object O = Resources.ResourceManager.GetObject("chan1"); //Return an object from the image chan1.png in the project channelPic.Image = (Image)O; //Set the Image property of channelPic to the returned object as Image
注意 :如果在项目资源中找不到指定的字符串,则Resources.ResourceManager.GetObject(string name)可能会返回null。
Resources.ResourceManager.GetObject(string name)
null
谢谢, 希望对您有所帮助:)