Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [VB.NET 2010] Eventi form da codice...
Forum - C# / VB.NET - [VB.NET 2010] Eventi form da codice...

Avatar
eliosn6989 (Normal User)
Newbie


Messaggi: 18
Iscritto: 25/10/2011

Segnala al moderatore
Postato alle 19:45
Domenica, 20/11/2011
salve,
ho creato un form da codice:

Codice sorgente - presumibilmente C# / VB.NET

  1. Dim FrmNWP As New Form
  2.         FrmNWP.FormBorderStyle = Windows.Forms.FormBorderStyle.SizableToolWindow
  3.         FrmNWP.Width = 500
  4.         FrmNWP.Height = 300
  5.         FrmNWP.StartPosition = FormStartPosition.CenterScreen
  6.         FrmNWP.Show()



e ora dovrei creare l'evento "Sizechanged".....ma come faccio?


Programma "libero"! Programma per hobby!
PM Quote
Avatar
Qwertj (Dev Team)
Guru


Messaggi: 678
Iscritto: 30/05/2011

Segnala al moderatore
Postato alle 20:14
Domenica, 20/11/2011
Codice sorgente - presumibilmente C# / VB.NET

  1. AddHandler FrmNWP.SizeChanged, AddressOf MetodoCheGesticeEvento


Dove MetodoCheGesticeEvento è appunto il metodo con cui vuoi gestire l'evento.
Attento che abbia la giusta signature.

Per rimuovere l'handler:
Codice sorgente - presumibilmente C# / VB.NET

  1. RemoveHandler FrmNWP.SizeChanged, AddressOf MetodoCheGesticeEvento



Blog:
<coming soon>
Appalo:
http://www.appalo.it/
PM Quote
Avatar
R0gerBlack (Member)
Expert


Messaggi: 210
Iscritto: 10/06/2010

Segnala al moderatore
Postato alle 22:12
Domenica, 20/11/2011
Devi innanzitutto creare "l'evento" che devi chiamare
Codice sorgente - presumibilmente VB.NET

  1. Private Sub FrmNWP_SizeChanged(sender As System.Object, e As System.EventArgs)
  2.      'Codice dell'evento FrmNWP SizeChanged
  3. End Sub


e poi devi aggiungere l'handler
Codice sorgente - presumibilmente C# / VB.NET

  1. 'Metti questo codice quando vuoi creare l'Handler, tipo in Form1.Load
  2. 'Questa riga di codice associerà l'evento SizeChanged di FrmNWP all'evento che hai creato
  3. AddHandler FrmNWP.SizeChanged, AddressOf FrmNWP_SizeChanged



Comunque ti consiglio di dichiarare FrmNWP nelle variabili globali
Codice sorgente - presumibilmente C# / VB.NET

  1. Dim FrmNWP As Form



e di inizializzarlo a partire da un evento

Codice sorgente - presumibilmente C# / VB.NET

  1. FrmNWP = new Form



così potrai usarlo in altri momenti, ma solo se l'hai già inizializzato.


Volere è potere.

Se la conoscenza crea problemi, non è con l'ignoranza che si risolvono [Isaac Asimov]
PM Quote
Avatar
Dedalux (Member)
Pro


Messaggi: 103
Iscritto: 15/12/2010

Segnala al moderatore
Postato alle 16:13
Lunedì, 21/11/2011
Senno, sempre tra le variabili globali, potrebbe dichiararlo WithEvents e poi descrivere tutte le procedure che gli servono per gestire i relativi eventi.


«La disumanità del computer sta nel fatto che, una volta programmato e messo in funzione, si comporta in maniera perfettamente onesta.»

Isaac Asimov
PM Quote
Avatar
eliosn6989 (Normal User)
Newbie


Messaggi: 18
Iscritto: 25/10/2011

Segnala al moderatore
Postato alle 23:44
Lunedì, 21/11/2011
grazie, funziona :)

tuttavia, c'è un piccolo problema di gestione:
Codice sorgente - presumibilmente VB.NET

  1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  2.  
  3.         FrmNWP = New Form
  4.  
  5.         FrmNWP.FormBorderStyle = Windows.Forms.FormBorderStyle.SizableToolWindow
  6.         FrmNWP.Width = 500
  7.         FrmNWP.Height = 300
  8.         FrmNWP.StartPosition = FormStartPosition.CenterScreen
  9.         FrmNWP.Show()
  10.  
  11.  AddHandler FrmNWP.SizeChanged, AddressOf FrmNWP_SizeChanged
  12. end sub
  13.  
  14.    Private Sub FrmNWP_SizeChanged(ByVal sender As Object, ByVal e As EventArgs)
  15. 'operazioni varie
  16. '........
  17.     End Sub



quando ho già creato due o più form, e poi scateno l'evento SizeChanged, questo ha effetto esclusivamente sull'ultimo form creato....come faccio a gestire più form???


Programma "libero"! Programma per hobby!
PM Quote
Avatar
Qwertj (Dev Team)
Guru


Messaggi: 678
Iscritto: 30/05/2011

Segnala al moderatore
Postato alle 13:49
Martedì, 22/11/2011
Facendo
Codice sorgente - presumibilmente C# / VB.NET

  1. FrmNWP = New Form


Sovrascrivi la variabile...

Devi creare una lista di form, quindi fuori da Button1_Click() scrivi;
Codice sorgente - presumibilmente C# / VB.NET

  1. Private FrmNWP As New List(Of Form)



E dopo fai
Codice sorgente - presumibilmente C# / VB.NET

  1. FrmNWP.Add(New Form)
  2. LastForm = FrmNWP(FrmNWP.Count)
  3.  
  4.         LastForm.FormBorderStyle = Windows.Forms.FormBorderStyle.SizableToolWindow
  5.         LastForm.Width = 500
  6.         LastForm.Height = 300
  7.         LastForm.StartPosition = FormStartPosition.CenterScreen
  8.         LastForm.Show()
  9.  
  10.  AddHandler LastForm.SizeChanged, AddressOf FrmNWP_SizeChanged




Blog:
<coming soon>
Appalo:
http://www.appalo.it/
PM Quote