Array di label

giovedì 23 giugno 2011 - 22.50
Tag Elenco Tags  C#  |  Windows 7  |  Visual Studio 2010

foan68 Profilo | Newbie

Salute a tutti!
Premetto che sono alle primissime armi con la programmazione e per questo chiedo il Vs. aiuto.
Il presente codice l'ho copiato e modificato da un precedente post dell'utente Cteniza in data 2 giu 2008
Ho un problemino con un array di label di cui incollo il codice

private void button1_Click(object sender, EventArgs e)
{
int x = 10, y = 10;
Label[] griglia = new Label[90];

for (int i = 0; i < griglia.Length; i++)
{
griglia[i].Name = "lbl" +(i+1);
griglia[i].Location = new System.Drawing.Point(x, y);
griglia[i].Text = "aaa";
this.Controls.Add(griglia[i]);
}
}
la mia intenzione è di creare 90 label alla pressione di un pulsante.
All'avvio del debug mi da il seguente errore:
Object reference not set to an instance of an object.
Grazie in anticipo per l'interessamento
Ciauz

alx_81 Profilo | Guru

>Salute a tutti!
Ciao e benvenuto su dotnethell.it!

>la mia intenzione è di creare 90 label alla pressione di un pulsante.
>All'avvio del debug mi da il seguente errore:
>Object reference not set to an instance of an object.
su che riga del codice?

>Grazie in anticipo per l'interessamento
di nulla!

--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi

foan68 Profilo | Newbie

già; si vede che sono nuovo è?

sulla prima del ciclo for
griglia[i].Name = "lbl";
commentando la riga e facendo eseguira la seconda
griglia[i].Location = new System.Drawing.Point(x, y);
il risulatato non cambia
[:'(]

paoval72 Profilo | Senior Member

Ciao. Devi prima istanziare ogni elemento dell'Array:
griglia[i] = new Label();

Così, ogni elemento dell'Array verrà "creato" e aggiunto alla collezione:


private void button1_Click(object sender, EventArgs e) { int x = 10, y = 10; Label[] griglia = new Label[90]; for (int i = 0; i < griglia.Length; i++) { griglia[i] = new Label(); griglia[i].Name = "lbl" +(i+1); griglia[i].Location = new System.Drawing.Point(x, y); griglia[i].Text = "aaa"; this.Controls.Add(griglia[i]); } }

Ciao,
Paolo

foan68 Profilo | Newbie

GraSSie mille
Uno dei miei primi mal di testa è passato.
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5