samehada (Normal User)
Newbie
Messaggi: 10
Iscritto: 06/06/2009
|
Salve a tutti!!
Volevo fare una domanda: è possibile creare un forma runtime?
del tipo
dim form as new form
dim button1 as new button
with form1
.
.
.
.
end with
with button1
.
.
.
.
end with
form1.controls.add(button1)
form1.show
e aggiungere anche gli eventi del pulsante?
|
|
ruggy94 (Member)
Guru
Messaggi: 890
Iscritto: 21/04/2008
|
Certo che si può :P
Per poterne anche gestire gli eventi, devi dichiararli WithEvents.
Quindi basta che crei un nuovo progetto e nella Class Form1 scrivi questo (ad esempio):
Codice sorgente - presumibilmente VB.NET |
Public Class Form1 WithEvents X As New Form 'è il nuovo form WithEvents Btn As New Button 'è il nuovo bottone Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load X.Controls.Add(Btn) 'aggiunge il bottone Btn ai controlli del form X Btn.Location = New Point(50, 50) 'modifica le proprietà Location e Size del Btn Btn.Size = New Size(100, 50) X.Show() 'Mostra il nuovo Form X End Sub End Class
|
Se qualcosa non ti è chiaro, chiedi pure
|
|
samehada (Normal User)
Newbie
Messaggi: 10
Iscritto: 06/06/2009
|
Ok, ma io ho gia un form, posso fare in modo che tipo se premo su un bottone mi crea il nuovo form dal comando di un modulo?
nel senso che il pulsante chiama una subroutine da un modulo, che fa delle cose tra cui creare il form
si puo?
|
|
ruggy94 (Member)
Guru
Messaggi: 890
Iscritto: 21/04/2008
|
Postato originariamente da samehada:
si puo? |
Certo. Utilizza il mio codice, ma mettilo in una sub. |
|
samehada (Normal User)
Newbie
Messaggi: 10
Iscritto: 06/06/2009
|
Facendo cosi mi da errore..
Codice sorgente - presumibilmente VB.NET |
Public Sub NewForm() Public Class Form1 WithEvents X As New Form 'è il nuovo form WithEvents Btn As New Button 'è il nuovo bottone Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load X.Controls.Add(Btn) 'aggiunge il bottone Btn ai controlli del form X Btn.Location = New Point(50, 50) 'modifica le proprietà Location e Size del Btn Btn.Size = New Size(100, 50) X.Show() 'Mostra il nuovo Form X End Sub End Class End Sub
|
Ultima modifica effettuata da samehada il 06/06/2009 alle 20:37 |
|
ruggy94 (Member)
Guru
Messaggi: 890
Iscritto: 21/04/2008
|
Postato originariamente da samehada:
Facendo cosi mi da errore..
Codice sorgente - presumibilmente VB.NET |
Public Sub NewForm() WithEvents X As New Form 'è il nuovo form WithEvents Btn As New Button 'è il nuovo bottone End Sub Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load X.Controls.Add(Btn) 'aggiunge il bottone Btn ai controlli del form X Btn.Location = New Point(50, 50) 'modifica le proprietà Location e Size del Btn Btn.Size = New Size(100, 50) X.Show() 'Mostra il nuovo Form X End Class End Sub
|
|
Vuol dire che il compilatore funziona
Ti consiglierei di studiare un po' il linguaggio prima di provare a programmare, perchè si vede che non devi aver toccato molte guide. Hai fatto errori tremendi quindi ormai ti aiuto, ma rinnovo il mio consiglio a studiarti una guida.
Codice completo:
Codice sorgente - presumibilmente VB.NET |
Public Class Form1 WithEvents X As New Form 'è il nuovo form WithEvents Btn As New Button 'è il nuovo bottone Sub NewForm() X.Controls.Add(Btn) 'aggiunge il bottone Btn ai controlli del form X Btn.Location = New Point(50, 50) 'modifica le proprietà Location e Size del Btn Btn.Size = New Size(100, 50) X.Show() 'Mostra il nuovo Form X End Sub Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load NewForm() End Sub End Class
|
|
|
samehada (Normal User)
Newbie
Messaggi: 10
Iscritto: 06/06/2009
|
E quindi il mio pulsante richiama la classe?
Non è che per caso ci siamo capiti male?
|
|
ruggy94 (Member)
Guru
Messaggi: 890
Iscritto: 21/04/2008
|
Postato originariamente da samehada:
Non è che per caso ci siamo capiti male? |
Prima non lo so...adesso direi di si . Che vuol dire il pulsante richiama la classe?
Il pulsante non fa nulla. Viene solo aggiunto al nuovo form. Se ho capito male, spiegami. |
|
samehada (Normal User)
Newbie
Messaggi: 10
Iscritto: 06/06/2009
|
Ci sono un form principale ed un modulo.
Nel modulo c'è una routine,
Codice sorgente - presumibilmente C# / VB.NET |
Public Sub Ciao
'Crea nuovo form con gli oggetti dentro
end sub
|
che viene chiamata piu volte dai vari form, e quindi l'ho messa in un modulo
questa routine dovrebbe, quando viene chiamata da un pulsante, creare un nuovo form, con un pulsante, e di questo pulsante dovrei controllare alcuni aventi.
|
|