Retrieve image resource using string variable in foreach loop

前端 未结 2 1789
悲&欢浪女
悲&欢浪女 2021-01-15 21:13

I have a string array \"abc\" I put this in a for each loop. I want to retrieve an image from resources using the value in the foreach loop and put it into a picture box.

相关标签:
2条回答
  • 2021-01-15 21:30

    Here is a simple method you can use

    Add to your code and replace XXXAPPNAMEXXX with the name of you application.

        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;
        }
    

    Note: Go into Resources.Designer.cs and make the private attribute resourceCulture public.

    I have commented out my error handling (ex.HandleException) as yours may differ.

    0 讨论(0)
  • 2021-01-15 21:35

    You could do something like:

    object obj = ResourceManager.GetObject("MyResourceName", resourceCulture);
    return ((System.Drawing.Bitmap)(obj));
    

    To get a resource by name.

    With ResourceManager being something like:

    var ResourceManager = 
        new System.Resources.ResourceManager(
            "YourAssembly.Properties.Resources", 
            typeof(Resources).Assembly);
    

    So in your example you could write:

    foreach (char i in stringArr)
    {
        PictureBox pictureBox = new PictureBox();
    
        object obj = ResourceManager.GetObject(i.ToString(), resourceCulture);
        pictureBox.Image = ((System.Drawing.Bitmap)(obj));
    }
    

    (You also could omit the resourceCulture parameter if your image is of no special culture).

    I do assume that your code is just an excerpt from a larger example since it makes no sense to me to create a PictureBox inside a look and not assign it to a form.

    0 讨论(0)
提交回复
热议问题