Creare e Trascinare i Bottoni da codice

domenica 30 aprile 2006 - 12.47

max1850 Profilo | Junior Member

Salve. Uso VB NET 2005.
Vorrei fare una form che all'interno contiene un bottone. Questo bottone, se premuto, mi deve creare altri bottoni, e questi bottoni devono poter essere ridimensionti a piacere dall'utente che utilizza il programma. Ad esempio alcuni di questi può farli rettangolari e stretti, ecc.. e devono anche potersi spostare nel form.

Si può fare?

Grazie
Max!

19018 Profilo | Expert

>Salve. Uso VB NET 2005.
>Vorrei fare una form che all'interno contiene un bottone. Questo
>bottone, se premuto, mi deve creare altri bottoni,

Fin qui è facile!


e questi bottoni
>devono poter essere ridimensionti a piacere dall'utente che utilizza
>il programma. Ad esempio alcuni di questi può farli rettangolari
>e stretti, ecc.. e devono anche potersi spostare nel form.

Anche questo è fattibile ma non facile o cmq non immediato. Dovresti crearti un controllo personalizzato che eredita da button e aggiungere le proprietà che ti interessano.

Una soluzione alternativa potrebbe essere quella di inserire nel form anche dei textbox in cui l'utente inserisce le dimensioni del bottone e dove crearlo.Se questo ti ve bene fammi sapere, ti posto il codice in c# però.
ciao

Stefano Passatordi

http://blogs.dotnethell.it/stem/

max1850 Profilo | Junior Member

Ciao!
Si, potrebbe erssere un'alternativa valida.
Se puoi mandare il codice come allegato cercherò di convertirlo in VB.

Ciao
Max!

19018 Profilo | Expert

Eccoti il codice, spero sia tutto chiaro!ciao

Ricorda che button1 è il bottone per aggiungere, textbox1 contiene la X e textbox2 la Y (per posizionare il nuovo bottone), textbox3 contiene il testo del bottone.
Nella routine btn_Click inserisci il codice che deve essere eseguito con la pressione del bottone, riferisciti al bottone usando currentButton.Se hai problemi scrivimi.ciao

private void button1_Click(object sender, EventArgs e) { counter += 1; Button myButton = new Button(); myButton.Name = "Button " + counter; myButton.Text = textBox3.Text; //QUESTO è IL TEXTBOX CHE CONTERRA' IL TESTO int x = Convert.ToInt32(textBox1.Text);//QUESTO è IL TEXTBOX CHE CONTERRA' LA X int y = Convert.ToInt32(textBox2.Text);//QUESTO è IL TEXTBOX CHE CONTERRA' LA Y myButton.Location = new Point(x, y); myButton.Click += new System.EventHandler(this.btn_Click);//AGGIUNGE L'EVENTO CLICK this.Controls.Add(myButton); } private void btn_Click(object sender, System.EventArgs e) { Button currentButton = (Button)sender; //CODICE CHE VUOI }

Stefano Passatordi

http://blogs.dotnethell.it/stem/

max1850 Profilo | Junior Member

Ciao!
Ho potuto risponderti solo adesso....
Ottimo il codice postato..a occhio e croce è molto semplice da convertire in VB.
Appena ho un po'di tempo lo farò!
Grazie dell'aiuto!
Max!
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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5