Dynamisches Erzeugen von Pictureboxen in einer Schleife führt zum Absturz



  • Hallo, ich erzeuge dynamisch Pictureboxen. pro Schleifendurchlauf sollen 3 Stück hinzukommen. Ein großes und dadrunter 2 kleine neben einander. Im folgenden Code habe ich es ausprobiert aber mein Programm stürzt andauernd ab. Kann mir vielleicht jemand eine kleine Hilfestellung geben? Erzeuge ich nur das große alleine klappt alles wunderbar. Danke!

    private void button1_Click(object sender, EventArgs e)
            {
                //Kontaktliste in Panel zur Laufzeit erzeiugen
                int anzahl = this.contactList.Count*3;
                int x = 10;
                int y = 20;
                int a = 180;
                int b = 100;
                PictureBox[] pbx = new PictureBox[anzahl];
                var contact = this.contactList[i];
                for (int i = 0; i < anzahl; i++)
                {
    
                    pbx[i] = new PictureBox();
                    Bitmap blub = new Bitmap("C:/Bild.jpg", true);
    
    pbx[i].Location = new Point(x, y);
    
                    pbx[i].Size = new Size(160, 120);
                    pbx[i].Visible = Visible;
                    this.panel1.Controls.Add(pbx[i]);
                    i++;
    
                    pbx[i].Image = iconAway;
                    pbx[i].Location = new Point(a, b);
    
                    pbx[i].Size = new Size(14, 14);
                    pbx[i].Visible = Visible;
                    this.panel1.Controls.Add(pbx[i]);
                    x = x + 140;
                    b = b + 140;
    
                }
            }
    


  • "C:/Bild.jpg" -> "C:\\Bild.jpg"

    "stürzt andauernd ab" ist die dümmst-mögliche Fehlerbeschreibung.



  • Hallo µ,

    .NET kann beides behandeln - daran sollte es nicht liegen.

    Was ich aber sehe, ist, daß zwar die Variable i innerhalb der Schleife erhöht wird, aber dazu kein neues PictureBox-Element angelegt wird -> NullReferenceException...



  • das war dumm von mir habe es jetzt erfolgreich gelöst. Jetzt kommt aber schon mein nächstes Problem mit dem Zugriff auf die erzeugten Boxen. Und zwar möchte ich wenn auf die Box gedrückt wird der name der Box in einer Messagebox angezeigt wird. Das muss doch irgendendwie mit Eventhandlern geschehen? Danke



  • s. C# - Dynamisch Buttons erstellen - Event Problem (wichtig ist die ".Click +=" Anweisung)


Anmelden zum Antworten