2009-07-27 19 views
14

Tengo un grupo de imágenes en mis My.Resources. Quiero seleccionar imágenes seleccionadas para mostrar dinámicamente en tiempo de ejecución. ¿Cómo hago esto?VB.Net: Seleccionar dinámicamente la imagen de My.Resources

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

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

Respuesta

28

encontrado la solución:

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

¡Oh hombre podrían haber hecho que el mismo código funcionara en ambas situaciones! Quiero decir, .NET está lleno de cosas como "no decirlo" form1 ", llámalo" yo "en su lugar". Simplemente podrían tener una corrección automática o incluso mejor, compilar el código de la misma manera./rant –

+0

P.S .: Esto no funciona para mí (VB 2008) –

+1

P.S .: Actualización: lo siento; funciona, pero no incluye la extensión! –

4

Asegúrese de que no se incluye la extensión del recurso, ni ruta. Es solo el nombre del archivo de recursos.

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

¿Cómo difiero entre File.jpg y File.pdf, si tengo estos recursos (mismo nombre de archivo, extensión diferente)? –

4

Esto funciona para mí en tiempo de ejecución también:

UltraPictureBox1.Image = My.Resources.MyPicture 

No hay cadenas involucradas y si cambio el nombre que se actualiza automáticamente por refactorización.

2
Dim resources As Object = My.Resources.ResourceManager 
PictureBoxName.Image = resources.GetObject("Company_Logo") 
Cuestiones relacionadas