Benutzer mit den meisten Antworten
Variable in Syntax

Frage
-
Hallo Leute,
jetzt komme ich mal wieder mit meinen blöden Fragen. Ich habe ein echt banales Problem.
ich möchte gerne
PictureBox3.Image = My.Resources.d_0_L
hier statt "d_0_L" "d_<integer>_L" einsetzten.
Vielen Dank und Entschuldigung für meine blöden Fragen,
Dark Nerv
- Bearbeitet Bodenseecoder Freitag, 15. August 2014 11:09
Antworten
-
Hi Dark Nerv,
das wird so nicht einfach Klappen, da d_0_L eher eher der Property/Methode eines Objektes entspricht.
Ich denke der einfachste Weg hier ist die Bilder in eine List oder bei bedarf in ein Dictonary zu laden. Und dann darauf zuzugreifen.
Theoretisch könnte es auch über Reflection Funktionieren, das ist dann aber etwas komplizierte und nicht wirklich Performant.
MFG
Björn
- Als Antwort vorgeschlagen Tom Lambert (Koopakiller)Moderator Freitag, 26. September 2014 20:54
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Freitag, 10. Oktober 2014 13:16
-
Hallo,
da du scheinbar verschiedene Resourcen auslesen willst, kannst du über Reflection arbeiten:Dim type = GetType(My.Resources.Resources) 'Die Kalsse mit den Bildern' Dim props = type.GetProperties(BindingFlags.Public Or BindingFlags.Static) 'Alle Eigenschaftennamen abrufen' 'Bilder anhand von Namen abrufen:'
Beachte aber, das sich der Aufwand nur lohnt, wenn du wirklich sehr viele Bidler zuweisen musst und du auch die PictureBoxen in einer Schleife o.ä. verarbeiten kannst.
'Name dynamisch erzeugen:'
'dim name = "d_" & integ & "_L"' PictureBox1.Image = CType(props.First(Function(x) x.Name = "d_0_L").GetValue(Nothing), Image) PictureBox2.Image = CType(props.First(Function(x) x.Name = "d_1_L").GetValue(Nothing), Image) PictureBox3.Image = CType(props.First(Function(x) x.Name = "d_2_L").GetValue(Nothing), Image)
Diese Lösung ist nämlich langsamer als der Standardcode und auch Fehleranfälliger.Tom Lambert - C# MVP
Bitte bewertet- und markiert Beiträge als Antwort. Danke.
Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter
Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets- Als Antwort vorgeschlagen Tom Lambert (Koopakiller)Moderator Freitag, 26. September 2014 20:54
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Freitag, 10. Oktober 2014 13:15
Alle Antworten
-
Hi Dark Nerv,
das wird so nicht einfach Klappen, da d_0_L eher eher der Property/Methode eines Objektes entspricht.
Ich denke der einfachste Weg hier ist die Bilder in eine List oder bei bedarf in ein Dictonary zu laden. Und dann darauf zuzugreifen.
Theoretisch könnte es auch über Reflection Funktionieren, das ist dann aber etwas komplizierte und nicht wirklich Performant.
MFG
Björn
- Als Antwort vorgeschlagen Tom Lambert (Koopakiller)Moderator Freitag, 26. September 2014 20:54
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Freitag, 10. Oktober 2014 13:16
-
Hallo,
da du scheinbar verschiedene Resourcen auslesen willst, kannst du über Reflection arbeiten:Dim type = GetType(My.Resources.Resources) 'Die Kalsse mit den Bildern' Dim props = type.GetProperties(BindingFlags.Public Or BindingFlags.Static) 'Alle Eigenschaftennamen abrufen' 'Bilder anhand von Namen abrufen:'
Beachte aber, das sich der Aufwand nur lohnt, wenn du wirklich sehr viele Bidler zuweisen musst und du auch die PictureBoxen in einer Schleife o.ä. verarbeiten kannst.
'Name dynamisch erzeugen:'
'dim name = "d_" & integ & "_L"' PictureBox1.Image = CType(props.First(Function(x) x.Name = "d_0_L").GetValue(Nothing), Image) PictureBox2.Image = CType(props.First(Function(x) x.Name = "d_1_L").GetValue(Nothing), Image) PictureBox3.Image = CType(props.First(Function(x) x.Name = "d_2_L").GetValue(Nothing), Image)
Diese Lösung ist nämlich langsamer als der Standardcode und auch Fehleranfälliger.Tom Lambert - C# MVP
Bitte bewertet- und markiert Beiträge als Antwort. Danke.
Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter
Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets- Als Antwort vorgeschlagen Tom Lambert (Koopakiller)Moderator Freitag, 26. September 2014 20:54
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Freitag, 10. Oktober 2014 13:15