Изображения в Picturebox c # - PullRequest
2 голосов
/ 05 июня 2011

Я пишу программу о том, чтобы попробовать разные изображения в картинке, но изображение должно соответствовать тексту. Плюс он должен быть из папки «Ресурсы» проекта.

это то, что я хочу сделать, если текст «яблоко» будет отображаться на экране, тогда изображение с именем «яблоко» будет также отображаться в окне рисунка

Я могу сделать это в «если-еще», как это

string word="apple";
if(word==apple)
pictureBox1.Image=  WindowsFormsApplication4.Properties.Resources.apple;

но что, если у меня есть тысяча изображений, я все еще думаю, что есть простой способ для этого, ..

Я пробую это,

string word=label1.Text;//label1.text changes from time to time
pictureBox1.Image= WindowsFormsApplication4.Properties.Resources.word;

но я знаю, что "слово" - это строка .... Это невозможно ... Я не могу добавить строку к синтаксису ....

Ответы [ 2 ]

5 голосов
/ 05 июня 2011

Вы можете передать строку, используя метод GetObject класса ResourceManager:

string itemName = label1.Text;
this.pictureBox1.Image = 
    (Image)Properties.Resources.ResourceManager.GetObject(itemName);
1 голос
/ 05 июня 2011

Если вы откроете ресурсы .Designer.cs кода файла, вы увидите что-то вроде:

internal static System.Drawing.Bitmap apple {
    get {
        object obj = ResourceManager.GetObject("apple", resourceCulture);
        return ((System.Drawing.Bitmap)(obj));
    }
}

так что вы можете сделать то же самое:

string word=label1.Text;//label1.text changes from time to time
pictureBox1.Image= (System.Drawing.Bitmap)WindowsFormsApplication4
                                           .Properties
                                           .Resources
                                           .ResourceManager.GetObject(word);
...