Laden...

NullReferenceException beim Iterieren durch Listenelemente

Erstellt von TheHuman vor 13 Jahren Letzter Beitrag vor 13 Jahren 1.061 Views
Thema geschlossen
T
TheHuman Themenstarter:in
7 Beiträge seit 2010
vor 13 Jahren
NullReferenceException beim Iterieren durch Listenelemente

Hallo, ich bin auf ein erneutes Problem gestoßen.

Ich bin dabei ein Kartenspiel zu programmieren.
Dabei hat die CPU folgende pictureboxes:

cpukarte1, cpukarte2, cpukarte3, cpukarte4, cpukarte5

Um diese nun zu befüllen, möchte ich nicht immer folgendes durchgehen:

cpukarte1.image = xy.jpg;
cpukarte2.image = xy.jpg;
...

Also habe ich folgendes versucht:

(for int 1 = 1; i<=5;i++)
{ 
   cpukarte[i].karte = ...
}

geht aber leider nicht.

Dann habe ich gedacht:

List<PictureBox> kartenPictureBox = new List<PictureBox>();

und diese mit

cpuDealer.kartenPictureBox.Add(cpuKarte1);

zu füllen und per

kartenPictureBox[0].image ansprechen zu können.

Doch auch dies ist gescheitert... ich erbitte um Rat 🙂

3.170 Beiträge seit 2006
vor 13 Jahren

Hallo,

Doch auch dies ist gescheitert...

Woran denn? Bekommst Du eine Fehlermeldung? Wenn ja, welche?

Gruß, MarsStein

Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca

T
TheHuman Themenstarter:in
7 Beiträge seit 2010
vor 13 Jahren

Hallo, danke für die rasche Antwort.

kartenPictureBox.Add(cpuKarte1);
messageBox.Show(Convert.ToString(kartenPictureBox[0]));

Also das Popup ist leer, er schreibt nicht "cpukarte1" rein.

Mit Anführungszeichen geht es auch nicht, da dies als String interpretiert wird 🙁

Versuche ich es doch mit kartenPictureBox[0].BringToFront();

erscheint:

Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.

T
13 Beiträge seit 2006
vor 13 Jahren

        private void FillPictureBox_clicked(object sender, EventArgs e)
        {
            foreach (Component component in this.Controls)
            {
                if (component is PictureBox)
                {
                    PictureBox pb = (PictureBox)component;
                    try
                    {
                        Image img = Bitmap.FromFile("c:\\" + pb.Name + ".jpg");
                        pb.Image = img;
                    }
                    catch (Exception ex)
                    { 
                        // Fehlerbehandlung
                    }
                
                }
            }
        }

Gruß

T
TheHuman Themenstarter:in
7 Beiträge seit 2010
vor 13 Jahren

Hallo Tamer, danke für deinen Code,

allerdings soll dieser nicht bei klicken befüllt werden, sondern "irgendwo" im Code.
Dann möcht ich alle durchgehen und modifizieren... X(

3.170 Beiträge seit 2006
vor 13 Jahren

Hallo,

Also das Popup ist leer, er schreibt nicht "cpukarte1" rein. und
... erscheint: "Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt." deutet beides darauf hin, daß Du die Variable cpukarte1 benutzt, bevor ein Objekt erzeugt und dieser zugewiesen wurde.

Siehe auch [FAQ] NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt

und beachte generell [Hinweis] Wie poste ich richtig? Punkt 1.1 und 1.1.1

Gruß, MarsStein

Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca

916 Beiträge seit 2008
vor 13 Jahren

Hallo,

du solltest wie MarsStein bereits erwähnt hat dir 'noch' mal die Grundlagen anschauen. Für solche einfach selber zu lösenden Probleme ist diese Forum eigentlich nicht gedacht...

Again what learned...

Thema geschlossen