2009-07-27 3 views
14

У меня есть группа изображений в My.Resources. Я хочу выбрать выбранные изображения для динамического отображения во время выполнения. Как мне это сделать?VB.Net: Динамический выбор изображения из My.Resources

'Static (Compile time) Assignment 
UltraPictureBox1.Image = my.Resources.zoo_picture_1 

'Dynamic (Runtime) Assignment 
UltraPictureBox1.Image = ??? 

ответ

28

Найдено решение:

UltraPictureBox1.Image = _ 
    My.Resources.ResourceManager.GetObject(object_name_as_string) 
+2

О, человек, с которым они могли бы работать одинаково, в обеих ситуациях! Я имею в виду, что .NET полна таких вещей, как «не говорите, что это« form1 », вместо этого назовите это« я »». Они могут просто иметь автоматическую коррекцию или даже лучше, скомпилировать код таким же образом./rant –

+0

P.S .: Это не работает для меня (VB 2008) –

+1

P.S .: Обновление: извините; работает, но не включает расширение! –

4

Убедитесь, что вы не включают расширение ресурса, ни путь к нему. Это только имя файла ресурса.

PictureBoxName.Image = My.Resources.ResourceManager.GetObject("object_name") 
+0

Как бы я отличался между File.jpg и File.pdf, если у меня есть эти ресурсы (одинаковое имя файла, другое расширение)? –

4

Это работает для меня во время выполнения тоже:

UltraPictureBox1.Image = My.Resources.MyPicture 

не участвует строк и если я изменю имя он автоматически обновляется рефакторинга.

2
Dim resources As Object = My.Resources.ResourceManager 
PictureBoxName.Image = resources.GetObject("Company_Logo") 
Смежные вопросы