2009-07-27 9 views
14

Ich habe eine Gruppe von Bildern in My.Resources. Ich möchte ausgewählte Bilder auswählen, die zur Laufzeit dynamisch angezeigt werden. Wie mache ich das?VB.Net: Dynamisch Bild von My.Resources wählen

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

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

Antwort

28

die Lösung gefunden:

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

Oh Mann, sie könnten den gleichen Code in beiden Situationen arbeiten lassen! Ich meine, .NET ist voll von diesen Dingen wie "sag nicht, dass es" Form1 "ist, nenne es stattdessen" Ich ". Sie könnten einfach eine Autokorrektur haben oder sogar besser, den Code auf die gleiche Weise kompilieren./rant –

+0

S.S .: Dies funktioniert nicht für mich (VB 2008) –

+1

S.S .: Update: sorry; funktioniert, aber keine Erweiterung! –

4

sicher, dass Sie Erweiterung der Ressource nicht enthalten, noch Weg zu ihm. Es ist nur der Ressourcendateiname. Diese

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

Wie würde ich zwischen File.jpg und File.pdf unterscheiden, wenn ich diese Ressourcen habe (gleicher Dateiname, andere Erweiterung)? –

4

funktioniert für mich zur Laufzeit zu:

UltraPictureBox1.Image = My.Resources.MyPicture 

No Strings beteiligt, und wenn ich den Namen ändern, wird sie automatisch aktualisiert durch Refactoring.

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