C# 在foreach循环中使用字符串变量检索图像资源

C# 在foreach循环中使用字符串变量检索图像资源,c#,resources,foreach,C#,Resources,Foreach,我有一个字符串数组“abc” 我把它放在一个for-each循环中。我想使用foreach循环中的值从资源中检索图像,并将其放入图片框中 代码如下: char[] stringArr = inputted.ToCharArray(); foreach (char i in stringArr) { PictureBox pictureBox = new PictureBox(); object obj = Reso

我有一个字符串数组“abc” 我把它放在一个for-each循环中。我想使用foreach循环中的值从资源中检索图像,并将其放入图片框中

代码如下:

char[] stringArr = inputted.ToCharArray();
        foreach (char i in stringArr)
        {
            PictureBox pictureBox = new PictureBox(); 
            object obj = ResourceManager.GetObject(i.ToString());
            pictureBox.Image = ((System.Drawing.Bitmap)(obj));
            Controls.Add(pictureBox);
        }
我要怎么做才能让它工作?
我试图实现的是,有图片,字母表中的每个字符代表不同的图片,用户输入一个字符串并单击一个按钮,用户输入被拍摄,形成字符串,我希望它根据他输入的字符串输出相关图像。您可以执行以下操作:

object obj = ResourceManager.GetObject("MyResourceName", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
var ResourceManager = 
    new System.Resources.ResourceManager(
        "YourAssembly.Properties.Resources", 
        typeof(Resources).Assembly);
按名称获取资源

ResourceManager
类似于:

object obj = ResourceManager.GetObject("MyResourceName", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
var ResourceManager = 
    new System.Resources.ResourceManager(
        "YourAssembly.Properties.Resources", 
        typeof(Resources).Assembly);
因此,在您的示例中,您可以编写:

foreach (char i in stringArr)
{
    PictureBox pictureBox = new PictureBox();

    object obj = ResourceManager.GetObject(i.ToString(), resourceCulture);
    pictureBox.Image = ((System.Drawing.Bitmap)(obj));
}
(如果图像没有特殊的区域性,也可以省略
resourceCulture
参数)


我确实假设您的代码只是一个较大示例的摘录,因为在外观中创建
PictureBox而不将其分配给表单对我来说毫无意义。

这里有一个简单的方法可以使用

添加到代码中,并用应用程序的名称替换XXXAPPNAMEXXX

    public Bitmap GetImageResourceByName(string name)
    {
        Bitmap MethodResult = null;
        try
        {
            MethodResult = (Bitmap)XXXAPPNAMEXXX.Properties.Resources.ResourceManager.GetObject(name, XXXAPPNAMEXXX.Properties.Resources.resourceCulture);

        }
        catch //(Exception ex)
        {
            //ex.HandleException();
        }
        return MethodResult;
    }
注意:进入Resources.Designer.cs并将私有属性resourceCulture设置为公共


我已经注释掉了我的错误处理(例如HandleException),因为您的错误处理可能有所不同。

那么,在您回答的最后一点中,您是否打算编写I.ToString(),否则您将在哪里使用i@RyanMurphy当然我改变了它。~我想实现的是,有图片,字母表中的每个字符代表不同的图片,用户输入一个字符串并单击一个按钮,用户输入的内容被拍摄,形成字符串,我希望它根据他输入的字符串输出相关图像。什么是resourceCulture?