INTERCETTARE la chiusudra di un form

venerdì 11 giugno 2004 - 10.19

giave83 Profilo | Newbie

ciao, sono sempre io con un'altra domandina...

come posso intercettare la chiusura di una form in modo da, ad esempio, fare salvare il file di testo prodotto in precedenza???

grazie mille per l'aiuto!

bye be Fede

alx_81 Profilo | Guru

ciao!!

Prova con l'evento closing.. =)
dimmi se fa al caso tuo!


Private Sub Form1_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
MsgBox("CIPPA")
End Sub

al posto di Form1 ci vuole il nome della tua Form
ciao!

Ale.

trinity Profilo | Guru

Sull'evento Closed si gestisce la chiusura di una form
Esempio

se voglio far visualizzare il messaggio ok prima di chiudere la form procedo in questo modo:

Private Sub Form1_Closed(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Closed
MsgBox("OK")
End Sub

Ciao
Fabio

alextyx Profilo | Expert

Beh, la risposta l'ha data alx_81. Devi mettere il codice opportuno nell'evento Closing. Personalmente in certe Form dove ho necessità simili, annullo l'evento closing, con opportuno codice all'interno della sua routine di evento, finchè un certo flag nn mi dà il via libera!

giave83 Profilo | Newbie

ragazzi..........niente..... non va!

in rete ho trovato questo pezzo di codice, che però poi in realtà, qdo vado a chiudere la form dalla X in alto a destra non va...

private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
MessageBox.Show("Do you want to save changes to your text?", "My Application",MessageBoxButtons.YesNo);
}

da qui sapreste darmi una mano??grazie ancora!!

ciao Fede

alextyx Profilo | Expert

Questo è codice che gira regolarmente:

Private Sub FrmEditaPrimaNota_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
If GIN.PblFlagStartNascondi = True Then
'il comando di chiusura può venire solo da FrmStart, che nn può darlo
' se nn è visibile
e.Cancel = True
Me.FlagEscape = True
End If
End Sub

Nn sto a spiegarti che significa quella GIN.PblFlagStartNascondi, ma in pratica se quel Flag è true, allora va intercettata la chiusura. Tra le altre cose, setto anche il FlagEscape, ma nn c'entra niente con l'intercettazione vera e propria. Prova a fare una cosa del genere:

Private Sub FrmEditaPrimaNota_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing

MsgBox("Sto per intercettare la chiusura. O chiudi il Debug di forza, o stacchi la spina del PC, perchè io 'sta Form, non te la faccio chiudere!")
e.Cancel = True
End If

End Sub

Dimmi se ti blocca la chiusura. Casomai, posta il codice che hai messo, compresa l'intestazione della routine, così come ho fatto io. OK?

giave83 Profilo | Newbie

questo è il codice che ho inserito:

private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
e.Cancel=true;
MessageBox.Show("Do you want to save changes to your text?", "My Application",MessageBoxButtons.YesNo);
}


NIENTE, non va!!!!!!!!!!!!!! :-((

sapresti aiutarmi? grazie mille!

alextyx Profilo | Expert

Dal codice che tenti di usare, si capisce (ci ho meso un po', ma alla fine ci sono arrivato!) che nn usi VB.NET, ma probabilmente C#.NET, quindi devo passare la mano a chi di dovere. In bocca al lupo!

giave83 Profilo | Newbie

allora proprio nessuno riesce ad aiutarmi a risolvere il mio problemino???

aiutooooo!!

ciao fede :-(

alextyx Profilo | Expert

Giave....il tuo problema secondo me dovrebbe essere risolto con i suggerimenti che hai già avuto. Purtroppo nn riesco a testare il software che usi tu, per capire dove può stare l'inghippo, perchè tu usi C# o C++ (nn conosco nè l'uno, nè l'altro) mentre io uso VB. Se passerai anche tu a VB.NET, potrò esserti di maggiore aiuto! :-)

giave83 Profilo | Newbie

... finalmente!!!!!!!!!

ho risolto il problema!!non chiedermi come ho fatto, ma in qualche modo ora fa il suo dovere!!!

grazie mille per l'aiuto!

alextyx Profilo | Expert

Deo gratia! :-))
Però ora passa a VB.NET!

jjradha Profilo | Newbie

Come hai fatto?
Perche anchio ho lo stesso problema adesso.
ti prego.

marcello

Govinda

alextyx Profilo | Expert

Premesso che di C# non ne so niente, mi sono piccato di fare una prova e con l'aiuto di qualche santo, sono riuscito a scrivere il seguente codice nell'evento closing. A me funziona....fatemi sapere!

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

alx_81 Profilo | Guru

Dai.. ci siamo arrivati alla fine.. =)
cmq, ho provato mille volte, ma se,bra funzionare sempre, sia c# che vb.net.. probabilmente ci si perdeva in giro qualcosina =)
cmq ottimo!

Ciao Giovani!
Alx81 =)

Cteniza Profilo | Guru

Questo tip per verificare se la form è stata chiusa premendo il bottone "X" in alto a destra.
http://community.visual-basic.it/lucianob/archive/2006/02/22/16861.aspx
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