Pictureboxen Bild zuweisen mit "my.resources" in einer Schleife

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Humax.

    Pictureboxen Bild zuweisen mit "my.resources" in einer Schleife

    Hi zusammen, ich habe auf meiner Form 64 Pictureboxen und meinen Resource 64 Bilder mit den Namen "Bild1", "Bild2" etc. hinzugefügt.

    Jeder Picturebox mit folgendem Befehl das Bild zuweisen ist ja recht aufwendig:

    VB.NET-Quellcode

    1. PictureBox1.BackgroundImage = My.Resources.bild1
    2. PictureBox1.BackgroundImage = My.Resources.bild2


    Deshalb frage ich mich ob es möglich ist auf die Resources in einer Schleife zuzugreifen:

    VB.NET-Quellcode

    1. For a As Integer = 1 To 64
    2. DirectCast(SplitContainer1.Panel1.Controls("PictureBox" & a.ToString), PictureBox).BackgroundImage = My.Resources.bild & a.tostring
    3. Next

    Humax schrieb:

    Deshalb frage ich mich ob es möglich ist auf die Resources in einer Schleife zuzugreifen:
    Fein.
    Und die Antwort lautet?
    Oder hast Du Deine Frage vergessen?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    So wie ich es gemacht habe funktioniert es nicht, deshalb ja die Frage ob es irgendwie möglich ist den Pictureboxen über die Schleife Bilder aus my.Resources zu zuordnen.

    Ich kann so zwar die Pictureboxen ansprechen aber ich kann so nicht über die Schleife auf my.resources zugreifen.

    So wie ich es im 1. Post geschrieben habe bekomme ich die Fehlermeldung (zur Entwurfszeit) "bild" ist kein Member von "Resources""

    Humax schrieb:

    VB.NET-Quellcode

    1. My.Resources.bild & a.tostring
    Du verwechselst einen Bezeichner mit einem String.
    Ein Bezeichner im Code (Designzeit) bezeichnet ein Objekt zur Laufzeit. Das ist keine Variable, die man mit String-Operationen variieren kann.
    Das einfachste wird sein, ein Array zu schaffen, in welches - namentlich bezeichnet - alle Bildresourcen reingestopft sind:

    VB.NET-Quellcode

    1. dim Bilder = {My.Resources.bild1, My.Resources.bild2, ...}
    Son Array kannste durchschleifen.