Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    281

    [VB.NET] Come si creano gli Handles?

    Ho un oggetto globale (dichiarato in un modulo come public) di tipo SqlConnection che viene usato da tutti i form del programma
    Il problema è che non riesco a gestire gli eventi di questo oggetto... ho provato a leggere la guida ma ho capito poco, anche perchè è molto generica sull'argomento

    Qualcuno mi sa dire come faccio a gestire gli eventi di questo oggetto dichiarato in quel modo?

  2. #2
    Utente di HTML.it L'avatar di bubu80
    Registrato dal
    Aug 2002
    Messaggi
    99
    l'oggetto devi dichiararlo con la parola chiave WithEvents

    Friend WthEvents oCon as SqlConnection

    Ciao!
    Non si finisce mai di imparare...

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    281
    Ho già provato ma non va, o meglio nei form non posso gestire gli eventi, posso farlo solo dal modulo stesso
    Non c'è un modo per gestire gli eventi anche dai vari form?

    Cmq grazie, riprovando ho notato che almeno nel modolo posso gestirli

  4. #4
    Hai dichiarato la variabile come Public?
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    281

  6. #6
    Hai importato il modulo? Hai provato a usare AddHandler e RemoveHandler?

  7. #7
    Utente di HTML.it L'avatar di Jupy64
    Registrato dal
    Sep 2004
    Messaggi
    1,151
    ciao, prova a fare cosi (dovrebbe funzionare...non l'ho provato):
    Nella form dichiari la Sub relativa all'evento che vuoi gestire della connessione
    codice:
    Private Sub conn_StateChange(ByVal sender As Object, ByVal e As System.Data.StateChangeEventArgs)
    ....gestisci l'evento....
    End Sub
    Sempre nella stessa form, nell'evento Load, aggiungi il riferimento all'evento..
    codice:
    AddHandler TuoModulo.TuaConnessione.StateChange, AddressOf conn_StateChange
    Poi nell'evento Closing del form scarichi l'evento...
    codice:
    RemoveHandler TuoModulo.TuaConnessione.StateChange, AddressOf conn_StateChange
    Devi solo fare attenzione se hai più form aperti contemporaneamente che fanno riferimento allo stesso evento della connessione...
    Jupy

  8. #8
    Originariamente inviato da Jupy64
    Poi nell'evento Closing del form scarichi l'evento...
    codice:
    RemoveHandler TuoModulo.TuaConnessione.StateChange, AddressOf conn_StateChange
    A cosa serve rimuovere un handler se poi non serve più comunque (visto che il form viene chiuso)? Cmq, ha ragione... il codice è quello.

  9. #9
    A cosa serve rimuovere un handler se poi non serve più comunque
    È sempre buona norma disattivare i riferimenti inutili.
    Amaro C++, il gusto pieno dell'undefined behavior.

  10. #10
    Utente di HTML.it L'avatar di Jupy64
    Registrato dal
    Sep 2004
    Messaggi
    1,151
    Originariamente inviato da Il Totem
    A cosa serve rimuovere un handler se poi non serve più comunque (visto che il form viene chiuso)? Cmq, ha ragione... il codice è quello.
    Ciao, effettivamente se viene creato un evento, con AddHandler, all'interno di un form e che fa riferimento a un oggetto sempre all'interno del form, non servirebbe rimuovere l'handler.. anche se, come detto anche da MItaly, è buona norma rimuovere sempre gli handler creati con AddHandler, indipendentemente se serve o meno.
    Detto questo, nel caso esposto, l'oggetto connection è pubblico e dichiarato in un modulo...forse non cambierebbe niente..ma ad ogni buon fine, meglio attenersi alla buona norma
    Jupy

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.