Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [C#] Creare bottoni dinamicamente su di un form
Forum - C# / VB.NET - [C#] Creare bottoni dinamicamente su di un form

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
__BlackworM__ (Member)
Pro


Messaggi: 110
Iscritto: 16/08/2008

Segnala al moderatore
Postato alle 0:49
Lunedì, 15/02/2010
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

  1. Button btn1 = new Button();
  2. btn1.Text = "Prova";// il testo dell bottone
  3. btn1.Size = new Size(50, 20);// la dimensione del button
  4. btn1.Location = new  System.Drawing.Point(13, 13);// la posizione del bottone
  5. btn1.Visible = true;



mi aiutate a capire dove sbaglio e come creare form con controlli dinamici ?

PM Quote
Avatar
Thejuster (Admin)
Guru^2


Messaggi: 2305
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 9:46
Lunedì, 15/02/2010
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


https://mire.forumfree.it/ - Mire Engine
C# UI Designer
PM Quote
Avatar
__BlackworM__ (Member)
Pro


Messaggi: 110
Iscritto: 16/08/2008

Segnala al moderatore
Postato alle 14:31
Lunedì, 15/02/2010
Testo quotato

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++

  1. private void button1_Click(object sender, EventArgs e)
  2.      {
  3.          Button btn1 = new Button();
  4.          this.Controls.Add(btn1);
  5.          btn1.Text = "Prova";// il testo dell bottone
  6.          btn1.Size = new Size(50, 20);// la dimensione del button
  7.          btn1.Location = new System.Drawing.Point(13, 13);// la posizione del bottone
  8.          btn1.Visible = true;
  9.      }


PM Quote
Avatar
Thejuster (Admin)
Guru^2


Messaggi: 2305
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 14:39
Lunedì, 15/02/2010
il controllo devi aggiungerlo per ultimo dopo averlo inizializzato

Codice sorgente - presumibilmente C++

  1. private void button1_Click(object sender, EventArgs e)
  2.      {
  3.          Button btn1 = new Button();
  4.  ----->  this.Controls.Add(btn1);
  5.          btn1.Text = "Prova";// il testo dell bottone
  6.          btn1.Size = new Size(50, 20);// la dimensione del button
  7.          btn1.Location = new System.Drawing.Point(13, 13);// la posizione del bottone
  8.          btn1.Visible = true;
  9.      }




dev'essere scritto in questo modo


Codice sorgente - presumibilmente C++

  1. private void button1_Click(object sender, EventArgs e)
  2.      {
  3.          Button btn1 = new Button();          
  4.          btn1.Text = "Prova";// il testo dell bottone
  5.          btn1.Size = new Size(50, 20);// la dimensione del button
  6.          btn1.Location = new System.Drawing.Point(13, 13);// la posizione del bottone
  7.          btn1.Visible = true;
  8.          this.Controls.Add(btn1);
  9.      }



https://mire.forumfree.it/ - Mire Engine
C# UI Designer
PM Quote
Avatar
__BlackworM__ (Member)
Pro


Messaggi: 110
Iscritto: 16/08/2008

Segnala al moderatore
Postato alle 14:46
Lunedì, 15/02/2010
Niente di niente per favore prova su vs il codice

PM Quote
Avatar
Thejuster (Admin)
Guru^2


Messaggi: 2305
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 14:53
Lunedì, 15/02/2010
bha non sò perche non ti funzioni.

cmq ho prova il mio modo funzionerà di sicuro

Codice sorgente - presumibilmente C++

  1. private void Form1_Load(object sender, EventArgs e)
  2.         {
  3.  
  4.             Button bt = new Button();
  5.  
  6.             bt.Name = "nome";
  7.             bt.Width = 100;
  8.             bt.Height = 20;
  9.             bt.Text = "Pulsante1";
  10.             bt.Location = new Point(10, 10);
  11.             this.Controls.Add(bt);
  12.  
  13.         }



https://mire.forumfree.it/ - Mire Engine
C# UI Designer
PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 14:20
Martedì, 16/02/2010
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).

PM Quote
Avatar
__BlackworM__ (Member)
Pro


Messaggi: 110
Iscritto: 16/08/2008

Segnala al moderatore
Postato alle 15:30
Martedì, 16/02/2010
Testo quotato

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.

PM Quote
Avatar
Thejuster (Admin)
Guru^2


Messaggi: 2305
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 16:34
Martedì, 16/02/2010
Testo quotato

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.


https://mire.forumfree.it/ - Mire Engine
C# UI Designer
PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo