Query Unload

mercoledì 15 febbraio 2006 - 14.45

lucagtii Profilo | Junior Member

Ciao ragazzi, ... (mi sento molto Bignardi!!) scherzi a parte, qualcuno mi sà indicare come faccio ad intercettare l'evento sul click della X di chiusura della form?

Ho provato a farlo sull'evento closing e sull'evento closed, ma nonostante cerchi di controllare la finestra viene sempre chiusa.

In pratica non esiste un evento tipo query unload del vecchio VB?

Ciao e Grazie

Brainkiller Profilo | Guru

>Ciao ragazzi, ... (mi sento molto Bignardi!!) scherzi a parte,
>qualcuno mi sà indicare come faccio ad intercettare l'evento
>sul click della X di chiusura della form?

Ciao Daria ! LOL :D

>Ho provato a farlo sull'evento closing e sull'evento closed,
>ma nonostante cerchi di controllare la finestra viene sempre
>chiusa.

E' giusto devi usare l'evento Closing. Ti posto qui di seguito del codice:

Private Sub Form1_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
MessageBox.Show("CHIUSURA FORM")
e.Cancel = True
End Sub

Allora come vedi lavoro all'interno dell'evento Closing. Visualizzo una MessageBox e poi imposto e.cancel=true.
Così facendo annulli pratiacmente l'operazione di chiusura e la form resta aperta. Questo serve principalmente per quando un utente inserisce dei dati nella form e non li salva prima di chiudere, allora tu puoi impostare e.cancel = true fino a quando l'utente non ha salvato tutto.

Se imposti invece e.cancel=false o addirittura non metti questa istruzione, la finestra si chiuderà e se è l'unica rimasta, l'applicazione termina.

ciao

David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/

lucagtii Profilo | Junior Member

Ti ringrazio molto,adesso è chiaro, però se volessi far scatenare l'evento closing da codice come posso fare?

Raiseevent closing(sender , e) mi dice che le classi di derivate non possono generare eventi di classi di base....

Come posso fare allora?


Grazie ancora

Brainkiller Profilo | Guru

>Ti ringrazio molto,adesso è chiaro, però se volessi far scatenare
>l'evento closing da codice come posso fare?
>Raiseevent closing(sender , e) mi dice che le classi di derivate
> non possono generare eventi di classi di base....

Semplicemente:

me.close()

per chiudere la form corrente e quindi si scatena il closing.
ciao


David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5