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 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?

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


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.

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.

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???

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



PM Quote