Sapere se un form è stato chiuso con la X

mercoledì 22 aprile 2009 - 21.55

TaiChi Profilo | Junior Member

Salve a tutti,

da formA chiamo formB, come posso sapere se un formBè stato chiuso con la X?

Mi serve per sapere da formA se dal formB in questione è stata chiamata una funzione oppure è stata chiusa senza fare nulla.

Ad occhio direi che dovrei monitorare l'evento uno dei due eventi FormClosing o FormClosed che espongono gli argomenti object sender, FormClosingEventArgs e; può darsi che FormClosingEventArgs faccia al caso mio?

Grazie.

Alessio Forconi

R3GM4ST3R Profilo | Junior Member

Ciao Alessio,
Allora con l'evento formclosing intercetti l'evento di chiusura della finestra, ed eventualmente puoi cancellare l'evento di chiusura con il comando
>e.Cancel = True
all'interno della funzione formclosing...

Però mi pare di capire che stai usando una tua form in modo modale (finestra di dialogo, a scelta obbligatoria) di conseguenza ti conviene usare i dialogresult del form
mi spiego meglio :

dalla finestra principale chiami la tua formdialog, che può avere un valore di ritorno, appunto il dialogresult
se per aprire la form fai così

dim o_formDialog as new TuaFormDialog()
If o_formDialog.ShowDialog(Me) = Windows.Forms.DialogResult.OK Then 'quando fai la showdialog il programma si blocca in attesa di un risultato dalla formdialog
MsgBox("E' passato dall'OK del form, e quindi ha eseguito la tua funzione")
End If

e dalla form di dialogo, alla pressione del bottone "OK" (per esempio) esegui la tua funzione, ed imposti il valore dialogresult a Windows.Forms.DialogResult.OK

'//Dentro alla finestra di dialogo
private sub btnOK_click(blablabla) onclick
Me.DialogResult = Windows.Forms.DialogResult.OK
end sub

Spero di essermi spiegato!

Ciao!


Tutti sanno che una cosa è impossibile da realizzare, finché arriva uno sprovveduto che non lo sa e la inventa. (Albert Einstein)

TaiChi Profilo | Junior Member

Grazie R3GM4ST3R,

in effetti però o uson il semplice show perchè è un form figlio di un MDI, vale lo stesso il tuo suggerimento?

Alessio Forconi

R3GM4ST3R Profilo | Junior Member

No allora il discorso cambia,
ti suggerirei di mettere una variabile globale nel form, e modificarla quando viene premuto il tasto "OK" e verificare all'evento formclosing il valore della variabile...

Ciao!
Tutti sanno che una cosa è impossibile da realizzare, finché arriva uno sprovveduto che non lo sa e la inventa. (Albert Einstein)
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