Objektname mit Variable aufrufen?

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von jogi-baer.

    Objektname mit Variable aufrufen?

    Hallo,

    bin neu hier im Forum und hab auch schon eine Frage...

    Ich habe in meinem Programm mehrere PictureBox Objekte. Die sollen mit einer Abfrage (If Schleife) je nach Ergebnis mit Bild1 oder Bild2 versehen werden.



    Die PictureBox Objekte haben die Namen PA1, PA2...PA13

    Hab es erst so probiert:

    VB.NET-Quellcode

    1. For i = 1 To 13
    2. 'Abfrage ob Bild 1 oder Bild 2 und dann:
    3. PA(i).ImageLocation(C:/...)
    4. Next


    das hat nicht funktioniert..



    Dann hab ich es noch so probiert:

    VB.NET-Quellcode

    1. For i = 1 To 13
    2. 'Abfrage ob Bild 1 oder Bild 2 und dann:
    3. Controls("PA" & CStr(i)).ImageLocation(C:/...)
    4. Next


    Da kommt dann aber die Fehlermeldung: Image Location ist kein Member von System.Windows.Forms.Control



    Ich hoffe es kann mir wer beim Lösen dieses Problems helfen!



    Danke schon mal!
    Hi jogi-baer!

    Willkommen im Forum!
    Wenn du auf die Imagelocation-Eigenschaft zugreifen willst, dann sollte das Objekt davor schon vom Typ Picturebox sein. Mit Controls("whatever") bekommst du nur ein Objekt vom Typ Control. Dieses musst du noch als Picturebox "casten":

    VB.NET-Quellcode

    1. DirectCast(Controls("PA" & CStr(i)),Picturebox).ImageLocation(C:/...)

    Vergiss nicht, den Pfad in der Imagelocation in Anführungszeichen zu setzen.

    Eine andere Methode wäre, mit einer For-Each-Schleife alle Elemente durchzugehen. Beispiele gibts dazu einige hier im Forum.

    LG, Kurti