Problem mit ObjectArray!

moson

Mitglied
Hi leutz,
ich habe hier ein kleines Problem mit einem Array.
Ich möchte mit einem Array 20 Panels erstellen, nur leider bekomme ich noch eine Exception.
Hier erstmal der Code:

Code:
//Deklaration:
private Panel[] panelFeld;

...................................

//Erzeugung:
panelFeld = new Panel[20];
     for(int c = 0; c <= 20; c++)
     {
				
	panelFeld[ c].BackColor = Color.Red;
	panelFeld[ c].Location = new Point(24+b, Convert.ToInt32(100+50*a));
	panelFeld[ c].Size = new Size(2, 2);
	panelFeld[ c].Name = "pan"+c.ToString();
	Controls.Add(panelFeld[ c]);
     }

So, wenn dies nun rennen lassen will kommt die Exception:
"System.NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt."

Ich hab kein Plan was falsch ist...
 
Hallo,
das was du da machst ist so als würdest du dies machen:

Code:
Panel panel;
panel.BackColor.Red;
...

Da fehlt ja wohl was.
So ists also richtig:

Code:
//Deklaration:
private Panel[] panelFeld;

...................................

//Erzeugung:
panelFeld = new Panel[20];
for(int c = 0; c <= 20; c++)
{
	panelFeld[ c] = new Panel();			
	panelFeld[ c].BackColor = Color.Red;
	panelFeld[ c].Location = new Point(24+b, Convert.ToInt32(100+50*a));
	panelFeld[ c].Size = new Size(2, 2);
	panelFeld[ c].Name = "pan"+c.ToString();
	Controls.Add(panelFeld[ c]);
}

Mfg,
Alex
 
Aso, danke, ich dachte der würde hier schon die 20 Panels instanzieren:
"panelFeld = new Panel[20];"

Ohu, jez bekomm ich ne 'System.IndexOutOfRangeException'
Versteh ich nich!
 
Zuletzt bearbeitet:
Original geschrieben von moson
Aso, danke, ich dachte der würde hier schon die 20 Panels instanzieren:
"panelFeld = new Panel[20];"

Ohu, jez bekomm ich ne 'System.IndexOutOfRangeException'
Versteh ich nich!

Das kommt daher das du deine Schleife 21 mal durchläufst
for(int c = 0; c <= 20; c++) ist = 21

<= 20 bedeutet
0
1
..
20 macht 21

aber nur für 20 Elemente ein Array deklariert hast


Sprich umändern in:
for(int c = 0; c < 20; c++)
 
Zurück