Newsgroup: it.comp.lang.visual-basic
Titolo: [VBNET] come posso eseguire del codice prima che l'applicazione si chiuda?

salve,
ho capito come riuscire a inserire un'icona nello systray ...ora devo
fare in modo che l'applicazione una volta che viene chiusa, invece di
morire deve nascondersi e infilarsi nello systrai ...per fare questo
dovro' catturare un evento presumo ...ma non lo trovo come fo?
ps 
stessa cosa vale se minimizzo la finestra...peccato che non esiste un
evento tipo "minimize" o qualcosa del genere per cui ho usato questo
trucco:
Private Sub minimizza(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.LocationChanged
        If MyBase.WindowState = FormWindowState.Minimized Then
            putToTray()
        End If
    End Sub
Praticamente catturo l'evento locationchanged e poi verifico le
proprietà della form ...ma mi pare un po' una stronzata
possibile che non esista un sistema + decoroso?

 evento tipo "minimize"
a braccio, perchè non ho qui .net.....
credo che la cosa funzioni un po' come vb6, con l'evento resize, all'interno del quale
verifichi la windowstate.
Salutoni
Sergio

Potresti utilizzare l'evento ApplicationExit della classe Application
Public Sub Main()
      AddHandler Application.ApplicationExit, AddressOf eh
      Application.Run(New Form1())
   End Sub
   Public Sub eh(ByVal sender As Object, ByVal e As System.EventArgs)
      Console.WriteLine("shutting down...")
   End Sub
HTH
-- 
Corrado Cavalli [Microsoft MVP]
UGIdotNET - 
http://www.ugidotnet.org

Aggiungerei anche l'uso di Form.Closing e/o Form.Closed a seconda di come
gestisci l'applicazione.


HTH
...interessante ...non ci ho capito un cazzo ...ma è normale sono
nuovo e mi sa che ancora sto cagando fuori dal tinello con programmini
facili facili (tanto per non uccidermi di noia sul manuale)
Ma mi spiaghi perchè visual studio mi dice che esiste un evento
chiamato closing per il MyBase? ma poi mi segnala subito un errore
dicendomi: method "inChiusura"cannot handle Event 'closing' because
they do not have the same signature
Che mazza vuol dire??? :P

chiedo perdono per il frasario usato nell'ultimo post ...non ho
dormito tutta la sera ...e sono scivolato in qualche parolaccia!
chiedo venia! (effettivamente ho usato delle frasi un po' colorate)

 Che mazza vuol dire??? :P
Che, se non usi il metodo di default per l'evento (cioe' <nomeform>_Closing)
generato dall'IDE ma ne definisci uno tuo (cioe' inChiusura), quest'ultimo
deve avere la stessa identica signature (stesso numero e stesso tipo di
parametri ecc.) dell'evento che vuoi gestire.
Nella fattispecie:
ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs
Ciao
--
Luca Dormio - 
luca....@tin.it
________________________________
"Marty, non stai ragionando in maniera quadridimensionale"
Dr. Emmett L. Brown


Strano quel che dici perchè ho provato a creare una procedura come hai
detto te ...ma non funziona 
    Private Sub MyBase_Closing(ByVal sender As System.Object, ByVal e
As System.EventArgs)
        Console.WriteLine("shutting down...")
        If minimizeOnClose.Checked Then
            putToTray()
            Exit Sub
        End If
    End Sub
(tra l'altro come faccio a dirgli di abbandonare la chiusura? l'exit
sub nn basta!)


(tanto per non uccidermi di noia sul manuale)
Senza lo studio del manuale (o meglio, manuali) non andrai molto lontano con
dotNET...


HTH
 
Hai ragione mi sa che tornerò al manuale e aspetto ancora un po' a
scrivere codice (il che è meglio)
grazie cmq perchè mi sei/siete stati utilissimi per comprendere un bel
po' di roba!

 Che mazza vuol dire??? :P
E tre.
Per favore usa un linguaggio meno volgare e pesante.
Andrea