__BlackworM__ (Member)
Pro
Messaggi: 110
Iscritto: 16/08/2008
|
Come da titolo sto provando ad aggiungere dinamicamente un bottone su di un form ma niente da fare...
vi posto il codice che sto usando :
Codice sorgente - presumibilmente C# / VB.NET |
Button btn1 = new Button();
btn1.Text = "Prova";// il testo dell bottone
btn1.Size = new Size(50, 20);// la dimensione del button
btn1.Location = new System.Drawing.Point(13, 13);// la posizione del bottone
btn1.Visible = true;
|
mi aiutate a capire dove sbaglio e come creare form con controlli dinamici ?
|
|
Thejuster (Admin)
Guru^2
Messaggi: 2305
Iscritto: 04/05/2008
|
hai dimenticato di aggiungere il controllo al form
this.Controls.Add(btn1);
Edit:
ricorda di aggiungere l'evento Click al pulsante creato
altrimenti sarebbe inutile inserirlo.
Ultima modifica effettuata da Thejuster il 15/02/2010 alle 9:49
|
|
__BlackworM__ (Member)
Pro
Messaggi: 110
Iscritto: 16/08/2008
|
Postato originariamente da Thejuster:
hai dimenticato di aggiungere il controllo al form
this.Controls.Add(btn1);
Edit:
ricorda di aggiungere l'evento Click al pulsante creato
altrimenti sarebbe inutile inserirlo.
|
ok ho aggiunto il controllo ma niente...
Codice sorgente - presumibilmente C++ |
private void button1_Click(object sender, EventArgs e) { Button btn1 = new Button(); this.Controls.Add(btn1); btn1.Text = "Prova";// il testo dell bottone btn1.Size = new Size(50, 20);// la dimensione del button btn1.Location = new System.Drawing.Point(13, 13);// la posizione del bottone btn1.Visible = true; }
|
|
|
Thejuster (Admin)
Guru^2
Messaggi: 2305
Iscritto: 04/05/2008
|
il controllo devi aggiungerlo per ultimo dopo averlo inizializzato
Codice sorgente - presumibilmente C++ |
private void button1_Click(object sender, EventArgs e) { Button btn1 = new Button(); -----> this.Controls.Add(btn1); btn1.Text = "Prova";// il testo dell bottone btn1.Size = new Size(50, 20);// la dimensione del button btn1.Location = new System.Drawing.Point(13, 13);// la posizione del bottone btn1.Visible = true; }
|
dev'essere scritto in questo modo
Codice sorgente - presumibilmente C++ |
private void button1_Click(object sender, EventArgs e) { Button btn1 = new Button(); btn1.Text = "Prova";// il testo dell bottone btn1.Size = new Size(50, 20);// la dimensione del button btn1.Location = new System.Drawing.Point(13, 13);// la posizione del bottone btn1.Visible = true; this.Controls.Add(btn1); }
|
|
|
__BlackworM__ (Member)
Pro
Messaggi: 110
Iscritto: 16/08/2008
|
Niente di niente per favore prova su vs il codice
|
|
Thejuster (Admin)
Guru^2
Messaggi: 2305
Iscritto: 04/05/2008
|
bha non sò perche non ti funzioni.
cmq ho prova il mio modo funzionerà di sicuro
Codice sorgente - presumibilmente C++ |
private void Form1_Load(object sender, EventArgs e) { Button bt = new Button(); bt.Name = "nome"; bt.Width = 100; bt.Height = 20; bt.Text = "Pulsante1"; bt.Location = new Point(10, 10); this.Controls.Add(bt); }
|
|
|
Il Totem (Admin)
Guru^2
Messaggi: 3635
Iscritto: 24/01/2006
|
Ti sei accorto che stai aggiungendo il pulsante in un pezzo di codice che dovrebbe essere eseguito alla pressione del pulsante stesso (che non esiste ancora)?
Non fa differenza dove è posto il this.Controls.Add, poiché btn1 è una variabile di tipo reference, e tutte le modifiche apportate anche dopo l'inserimento si ripercuotono sullo stesso oggetto (il passaggio al metodo Add avviene per riferimento).
|
|
__BlackworM__ (Member)
Pro
Messaggi: 110
Iscritto: 16/08/2008
|
Postato originariamente da Il Totem:
Ti sei accorto che stai aggiungendo il pulsante in un pezzo di codice che dovrebbe essere eseguito alla pressione del pulsante stesso (che non esiste ancora)?
Non fa differenza dove è posto il this.Controls.Add, poiché btn1 è una variabile di tipo reference, e tutte le modifiche apportate anche dopo l'inserimento si ripercuotono sullo stesso oggetto (il passaggio al metodo Add avviene per riferimento). |
ehm ti sei accorto che è nel codice di un bottone che già esiste in quanto ha un altro nome ?
cioè io voglio che alla pressione del tasto mi crei un bottone o comunque dopo un evento mi crei controlli dinamicamente. |
|
Thejuster (Admin)
Guru^2
Messaggi: 2305
Iscritto: 04/05/2008
|
Postato originariamente da Il Totem:
Ti sei accorto che stai aggiungendo il pulsante in un pezzo di codice che dovrebbe essere eseguito alla pressione del pulsante stesso (che non esiste ancora)?
Non fa differenza dove è posto il this.Controls.Add, poiché btn1 è una variabile di tipo reference, e tutte le modifiche apportate anche dopo l'inserimento si ripercuotono sullo stesso oggetto (il passaggio al metodo Add avviene per riferimento). |
vero,
però pensavo che visto il problema perseguiva
allora ho pensato che magari doveva disporlo alla fine dopo aver impostato
tutti i parametri al pulsante.
che non ti funziona non saprei dirti,
ma il procedimento e questo.
|
|