[VS2005] Tasto "Exit", Sicuro che vuoi uscire? "Si" o "No"

mercoledì 15 ottobre 2008 - 11.15

gdlcore Profilo | Junior Member

Ciao a tutti..ho un problema che sono sicuro riuscirete a risolvere, però io non riesco e quindi chiedo aiuto a voi..
Nel mio form principale ho un tasto Exit che premuto mi fa apparire il classico messaggio "Sei sicuro di voler uscire?" e poi bisognerà scegliere "Si" o "No"..
Non so quale istruzioni inserire per intercettare la mia risposta..
Questo è quello che sono riuscito a far apparire:

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

Aspetto vostra risposta grazie..

alexmed Profilo | Guru

Ciao

Dim Message As String = "Sei sicuro? I dati nel carrello andranno persi!"
Dim Caption As String = "Attenzione!"
Dim Buttons As MessageBoxButtons = MessageBoxButtons.YesNo

Dim Result As DialogResult

'Displays the MessageBox

Result = MessageBox.Show(Message, Caption, Buttons)

' Gets the result of the MessageBox display.

If Result = DialogResult.Yes Then

Me.Close()

End If

gdlcore Profilo | Junior Member

Più semplice di cosi..
Grazie!!
Domani apro un thread difficile!(Credo che sia difficile..)

Ciao !!

AntCiar Profilo | Expert

Ciao. Il codice che hanno postato va bene ma ha un piccolo difetto: se la form su cui visualizzi il bottone ha la "X" di chiusura in alto a destra visibile, la cosa non funziona. Cioè per la precisione funziona solo se clicchi sul bottone, ma se usi la X la form si chiude senza nessun messaggio.

Se sei in questo caso puoi fare cosi: sul click del bottone "Exit" metti questo codice: Me.Close()
Sull'evento FormClosing della form inserisci il codice che ti hanno postato nel messaggio precedente modificando il contenuto:

If result = DialogResult.Yes
e.Cancel= false
else
e.Handler = true
end if

in questo modo, o premi il bottone exit, o premi la X, o fai Alt + F4 sulla form, ti verrà fatta sempre la domanda e se rispondi "No" la form non si chiude.

Ciao

gdlcore Profilo | Junior Member

Grazie del consgilio ma non funziona cosi..
Mi da errore sulla e.handler..mi dice che non è un membro di System.Windows.Forms.FormClosingEventArgs

alexmed Profilo | Guru

Ciao

Ottima osservazione AntCiar!

If Result = DialogResult.Yes Then
e.Cancel = False
Else
e.Cancel = True
End If

Visto che ci siamo allora imposta anche nell'evento CancelButton del Form il bottone con cui esci, in modo tale che se per chiudere il form usi il tasto Esc ti richiama la msgbox.

Ciao

AntCiar Profilo | Expert

Ciao.
E' stato un errore di scrittura. Al posto di e.Handler va messo e.Cancel

Ciao.

gdlcore Profilo | Junior Member

Alex non riesco a impostare il cancel button..
Mi da questo errore:
Impossibile eseguire il cast di oggetti di tipo 'System.Windows.Forms.Label' sul tipo 'System.Windows.Forms.IButtonControl'.

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

Qualcosa di sbagliato?

alexmed Profilo | Guru


1280x1024 343Kb


Prova come indicato nel jpg allegato

gdlcore Profilo | Junior Member

Si ma io per uscire clicco o su un immagine oppure su una label..
Ho visto che funziona solo col button..vabbe pazienza, non si schiaccerà ESC
Comunque domani devo aprire un post sulla stampa, sulle anteprime e le esportazioni..speriamo di trovare aiuto anche li..grazie!!

alexmed Profilo | Guru

Ciao

>Si ma io per uscire clicco o su un immagine oppure su una label..
>Ho visto che funziona solo col button..vabbe pazienza, non si schiaccerà ESC

Se si chiama CancelButton probabilmente è perchè si può applicare solo ai pulsanti (credo).

>Comunque domani devo aprire un post sulla stampa, sulle anteprime e le esportazioni..speriamo di trovare aiuto anche li..grazie!!

Prego

Ciao

AntCiar Profilo | Expert

Ciao. Come detto nell'ultimo post, alla proprietà CancelButton può essere associato solo un bottone.
Se vuoi lo stesso gestire la pressione del tasto "Esc" sulla form puoi fare cosi:

imposta la proprieta' KeyPreview della Form a true.
ascolta l'evento keyDown e verifica all'interno dell'evento se il bottone premuto e' ESC. Se si, invochi il Me.Close() ed il gioco è fatto.

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