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 - [VB.NET] Nuovo form a runtime da modulo
Forum - C# / VB.NET - [VB.NET] Nuovo form a runtime da modulo

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
samehada (Normal User)
Newbie


Messaggi: 10
Iscritto: 06/06/2009

Segnala al moderatore
Postato alle 17:53
Sabato, 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?

PM Quote
Avatar
ruggy94 (Member)
Guru


Messaggi: 890
Iscritto: 21/04/2008

Segnala al moderatore
Postato alle 19:10
Sabato, 06/06/2009
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

  1. Public Class Form1
  2.     WithEvents X As New Form 'è il nuovo form
  3.     WithEvents Btn As New Button 'è il nuovo bottone
  4.  
  5.     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  6.         X.Controls.Add(Btn) 'aggiunge il bottone Btn ai controlli del form X
  7.         Btn.Location = New Point(50, 50) 'modifica le proprietà Location e Size del Btn
  8.         Btn.Size = New Size(100, 50)
  9.         X.Show() 'Mostra il nuovo Form X
  10.     End Sub
  11. End Class


Se qualcosa non ti è chiaro, chiedi pure :k:

PM Quote
Avatar
samehada (Normal User)
Newbie


Messaggi: 10
Iscritto: 06/06/2009

Segnala al moderatore
Postato alle 20:21
Sabato, 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?

PM Quote
Avatar
ruggy94 (Member)
Guru


Messaggi: 890
Iscritto: 21/04/2008

Segnala al moderatore
Postato alle 20:31
Sabato, 06/06/2009
Testo quotato

Postato originariamente da samehada:
si puo?


Certo. Utilizza il mio codice, ma mettilo in una sub.

PM Quote
Avatar
samehada (Normal User)
Newbie


Messaggi: 10
Iscritto: 06/06/2009

Segnala al moderatore
Postato alle 20:35
Sabato, 06/06/2009
Facendo cosi mi da errore..

Codice sorgente - presumibilmente VB.NET

  1. Public Sub NewForm()
  2.         Public Class Form1
  3.         WithEvents X As New Form 'è il nuovo form
  4.         WithEvents Btn As New Button 'è il nuovo bottone
  5.  
  6.     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  7.         X.Controls.Add(Btn) 'aggiunge il bottone Btn ai controlli del form X
  8.         Btn.Location = New Point(50, 50) 'modifica le proprietà Location e Size del Btn
  9.         Btn.Size = New Size(100, 50)
  10.         X.Show() 'Mostra il nuovo Form X
  11.     End Sub
  12. End Class
  13.     End Sub


Ultima modifica effettuata da samehada il 06/06/2009 alle 20:37
PM Quote
Avatar
ruggy94 (Member)
Guru


Messaggi: 890
Iscritto: 21/04/2008

Segnala al moderatore
Postato alle 20:55
Sabato, 06/06/2009
Testo quotato

Postato originariamente da samehada:

Facendo cosi mi da errore..

Codice sorgente - presumibilmente VB.NET

  1. Public Sub NewForm()
  2.         WithEvents X As New Form 'è il nuovo form
  3.         WithEvents Btn As New Button 'è il nuovo bottone
  4. End Sub
  5.     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  6.         X.Controls.Add(Btn) 'aggiunge il bottone Btn ai controlli del form X
  7.         Btn.Location = New Point(50, 50) 'modifica le proprietà Location e Size del Btn
  8.         Btn.Size = New Size(100, 50)
  9.         X.Show() 'Mostra il nuovo Form X
  10. End Class
  11.     End Sub



Vuol dire che il compilatore funziona :D
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 :rofl: quindi ormai ti aiuto, ma rinnovo il mio consiglio a studiarti una guida.
Codice completo:
Codice sorgente - presumibilmente VB.NET

  1. Public Class Form1
  2.     WithEvents X As New Form 'è il nuovo form
  3.     WithEvents Btn As New Button 'è il nuovo bottone
  4.     Sub NewForm()
  5.         X.Controls.Add(Btn) 'aggiunge il bottone Btn ai controlli del form X
  6.         Btn.Location = New Point(50, 50) 'modifica le proprietà Location e Size del Btn
  7.         Btn.Size = New Size(100, 50)
  8.         X.Show() 'Mostra il nuovo Form X
  9.     End Sub
  10.  
  11.     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  12.         NewForm()
  13.     End Sub
  14. End Class


PM Quote
Avatar
samehada (Normal User)
Newbie


Messaggi: 10
Iscritto: 06/06/2009

Segnala al moderatore
Postato alle 13:03
Domenica, 07/06/2009
E quindi il mio pulsante richiama la classe?
Non è che per caso ci siamo capiti male?

PM Quote
Avatar
ruggy94 (Member)
Guru


Messaggi: 890
Iscritto: 21/04/2008

Segnala al moderatore
Postato alle 13:20
Domenica, 07/06/2009
Testo quotato

Postato originariamente da samehada:
Non è che per caso ci siamo capiti male?


Prima non lo so...adesso direi di si :asd:. Che vuol dire il pulsante richiama la classe? :D
Il pulsante non fa nulla. Viene solo aggiunto al nuovo form. Se ho capito male, spiegami.

PM Quote
Avatar
samehada (Normal User)
Newbie


Messaggi: 10
Iscritto: 06/06/2009

Segnala al moderatore
Postato alle 13:50
Domenica, 07/06/2009
Ci sono un form principale ed un modulo.
Nel modulo c'è una routine,
Codice sorgente - presumibilmente C# / VB.NET

  1. Public Sub Ciao
  2. 'Crea nuovo form con gli oggetti dentro
  3. 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.

PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo