Oppure

Loading
14/02/10 23:49
__BlackworM__
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 :

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 ?
aaa
15/02/10 8:46
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.
Ultima modifica effettuata da Thejuster 15/02/10 8:49
mire.forumfree.it/ - Mire Engine
C# UI Designer
15/02/10 13:31
__BlackworM__
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...

     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; 
     }
aaa
15/02/10 13:39
Thejuster
il controllo devi aggiungerlo per ultimo dopo averlo inizializzato

 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



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);
     } 



mire.forumfree.it/ - Mire Engine
C# UI Designer
15/02/10 13:46
__BlackworM__
Niente di niente per favore prova su vs il codice
aaa
15/02/10 13:53
Thejuster
bha non sò perche non ti funzioni.

cmq ho prova il mio modo funzionerà di sicuro


    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);

        }

mire.forumfree.it/ - Mire Engine
C# UI Designer
16/02/10 13:20
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).
aaa
16/02/10 14:30
__BlackworM__
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.
aaa