Daniel Santos Ответов: 1

Как получить конкретное изображение из ресурсов?


Итак, у меня есть кнопка с названием "Португалия", "Соединенные Штаты", "Испания".

У меня есть изображение флага с именем Portugal.png, United States.png, Spain.png в моих ресурсах.

Я хочу, чтобы когда я нажимаю на кнопки форме (по электронной.кнопка G Португалия) на имя picturebox1.Изображение превращается в Португалии.PNG и всякий раз, когда я нажмите кнопку в США имя picturebox1.изображение превращается в Соединенных Штатах.ПНГ

Псевдокод:

Частный Суб ButtonClick
Имя picturebox1.изображение = мой.Ресурсов(кнопка button1.текст и amp; ".ПНГ")
Конец Подводной Лодки

Что я уже пробовал:

Мой.Ресурсов(Кнопка Button1.Text &". png").

*Не работает*

Richard Deeming

Почему вы отметили свой вопрос как " C#", когда используете VB.NET?

Daniel Santos

Я могу легко преобразовать его в VB.NET и я думаю, что, возможно, получу еще несколько ответов...

Richard Deeming

Это уже VB.NET, но вы добавили тег "C#" к своему вопросу. Это не имеет никакого отношения к C#! :)

1 Ответов

Рейтинг:
9

Richard Deeming

VB.NET-с "My.Resources"обеспечивает строго типизированный доступ к ресурсам в вашем проекте. Он имеет свойство для каждого файла, встроенного в ресурсы, но не предоставляет индексатор для доступа к файлам с динамическим именем.

Однако это делает предоставьте свойство под названием ResourceManager, что позволит вам получить доступ к ресурсам по имени:
Извлечение ресурсов с помощью класса ResourceManager[^]

Protected Sub Button_Click(ByVal sender As Object, ByVal e As EventArgs)
    Dim button As Button = DirectCast(sender, Button)
    Dim resource As Object = My.Resources.ResourceManager.GetObject(button.Text)
    Picturebox1.Image = DirectCast(resource, Image)
End Sub

NB: Вам нужно только имя ресурса, а не расширение файла.


Daniel Santos

@Richardd Deeming, я уже понял это, ваш ответ правильный.
Я использовал только это:
PictureBox2.BackgroundImage = My.Resources.Менеджер ресурсов.GetObject(Button1. Text)