CancelButton in Windows Form

lunedì 29 agosto 2005 - 12.16

kunio Profilo | Junior Member

Ciao,
sto realizzando un applicativo in Windows Form che, una volta schiacciato un bottone, crea un thread. Se aspetto la terminazione del thread oppure se lo uccido, al momento della chiusura della Form tramite il Cancel Button della Form stessa non ho problemi.
Il problema sorge quando chiudo la Form mentre il thread è ancora attivo.
Se creo un bottone contenente l’istruzione:
Environment.Exit(0)
il problema è risolto.
Però, come faccio a caratterizzare il Cancel Button?
Oppure è possibile disabilitare solo il Cancel Button (e non l’intera ControlBox) in presenza del caso che mi crea problemi?
Ho provato a caratterizzare il CancelButton nella sua proprietà, associandogli il codice di un bottone che verificava se il thread era attivo, lo chiudeva e poi con Environment.Exit(0) chiudeva la Form, però a quanto pare, il programma non termina con codice 0.

P.S.: per curiosità sapete qual è il codice presente in CancelButton?

Brainkiller Profilo | Guru

Ciao,
secondo me puoi provare ad intercettare l'evento Closing che scatta quando l'utente chiude la Form premendo sulla X o dal menù e poi scegliendo chiudi.

Lì puoi verificare se il Thread è ancora in esecuzione ed eventualmente terminarlo in modo da fare una chiusura pulita.

ciao

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

kunio Profilo | Junior Member

Ciao,
grazie per avermi risposto.
Non ho capito bene la differenza tra quello che mi hai suggerito tu e quello che ho fatto io.
-------------------------------------------------------------------------------------------------------------
Ho provato a caratterizzare il CancelButton nella sua proprietà, associandogli il codice di un bottone che verificava se il thread era attivo, lo chiudeva e poi con Environment.Exit(0) chiudeva la Form, però a quanto pare, il programma non termina con codice 0
-------------------------------------------------------------------------------------------------------------

Cosa intendi per intercettare l'evento Closing?

La cosa strana è che dal menu Esci il fatto che il thread sia ancora aperto non influisce.Mettendo l'istruzione System.Environment.Exit(0) termina tutto senza errori.Dalla X della Form NO.

Ringrazio ancora per l'attenzione.

Ciao ciao


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