2009-07-27 11 views
14

Ho un gruppo di immagini nel mio My.Resources. Voglio selezionare le immagini da visualizzare dinamicamente in fase di esecuzione. Come faccio a fare questo?VB.Net: Seleziona dinamicamente immagine da My.Resources

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

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

risposta

28

trovato la soluzione:

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

Oh uomo, avrebbero potuto far funzionare lo stesso codice in entrambe le situazioni! Voglio dire, .NET è pieno di cose come "non dire che è" form1 ", chiamalo" io "invece". Potrebbero semplicemente avere la correzione automatica o, ancora meglio, compilare il codice allo stesso modo./rant –

+0

P.S .: Questo non funziona per me (VB 2008) –

+1

P.S .: Aggiornamento: mi dispiace; funziona, ma non includere l'estensione! –

4

Assicurarsi di non includere l'estensione della risorsa, nè relativo percorso. È solo il nome del file della risorsa.

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

Come dovrei differenziare tra File.jpg e File.pdf, se ho queste risorse (stesso nome file, diversa estensione)? –

4

questo funziona per me in fase di esecuzione troppo:

UltraPictureBox1.Image = My.Resources.MyPicture 

No strings coinvolti e se cambio il nome che viene aggiornata automaticamente dal refactoring.

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