Problema Finestra di Salvataggio pulsanti YesNo

venerdì 14 settembre 2007 - 20.49

gey Profilo | Newbie

Salve a tutti, mi trovo in Visual Basic 2005 Express, con il seguente problema.

Non riesco fare in modo, che dalla finestra di Salvataggio, quando clicco su NO si chiuda. Si apre la Finestra di Dialogo come quando clicco su Yes.

Qualcuno mi sa risolvere questo problema?
Molte Grazie a chi mi risponde.

Questo è il codice che uso.


Private Sub Form2_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed

Dim SceltaYesNo As Integer
SceltaYesNo = MsgBox("Salvare le modifiche apportate a Document?", Microsoft.VisualBasic.MsgBoxStyle.YesNo Or MsgBoxStyle.Exclamation, "Salvataggio")

If SceltaYesNo = SaveFileDialog2.ShowDialog Then
SaveFileDialog2.FileName = Windows.Forms.DialogResult.Yes
End If
End Sub

SSUPERPIPPO Profilo | Guru

Salve a tutti, mi trovo in Visual Basic 2005 Express, con il seguente problema.

Non riesco fare in modo, che dalla finestra di Salvataggio, quando clicco su NO si chiuda. Si apre la Finestra di Dialogo come quando clicco su Yes.

>Qualcuno mi sa risolvere questo problema?
>Molte Grazie a chi mi risponde.

>Questo è il codice che uso.


>Private Sub Form2_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles >Me.FormClosed

>Dim SceltaYesNo As Integer
>SceltaYesNo = MsgBox("Salvare le modifiche apportate a Document?", Microsoft.VisualBasic.MsgBoxStyle.YesNo Or >MsgBoxStyle.Exclamation, "Salvataggio")

>If SceltaYesNo = SaveFileDialog2.ShowDialog Then
>SaveFileDialog2.FileName = Windows.Forms.DialogResult.Yes
>End If
>End Sub

Innanzitutto in VB 2005 non è il massimo utilizzare MsgBox, è meglio utilizzare l'oggetto Messagebox.
Il codice, direi piuttosto ingarbugliato che hai riportato, può essere così sintetizzato:

If MessageBox.Show("Salvare le modifiche apportate a Document?", "Salvataggio", MessageBoxButtons.YesNo) = Windows.Forms.DialogResult.Yes Then
If SaveFileDialog2.ShowDialog = Windows.Forms.DialogResult.Yes Then
'... salva i dati
End If
End If

Se non ti è chiaro fammi sapere.

ciao

Alessandro


http://blogs.dotnethell.it/alebadalin

gey Profilo | Newbie

Tutto ok adesso funziona.
Molte grazie.
Però mi è venuta in mente un 'altra cosa, sarebbe giusto inserire anche il pulsante annulla, dunque a questo punto cambia tutto.

Grazie se riesci a rispondermi.

alextyx Profilo | Expert

Se il pulsante annulla deve solo NON salvare i dati, a parte che diventa una replica del pulsante NO, il codice dovrebbe continuare a funzionare.
Se invece tu volessi intraprendere azioni diverse per Sì, No e Annulla, allora potresti assegnare il valore di ritorno del tuo messagebox ad una variabile dialogresult e poi testarne il valore, agendo di conseguenza.

gey Profilo | Newbie

Vorrei che il pulsante Yes mi apra la finestra di dialogo Salva, il pulsante No termini il programma, e il pulsante Annulla mi chiuda il MessageBox.
Io ho provato così ma non và.

Private Sub Form2_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed

Dim res As DialogResult = MessageBox.Show("Salvare la modifiche apportate a Document?", "Salvataggio", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question)

res = Windows.Forms.DialogResult.Cancel

If res = Windows.Forms.DialogResult.Yes Then
Me.SaveFileDialog2.ShowDialog()
End If
End Sub
Molte grazie a chi mi risponde.

alextyx Profilo | Expert

Nell'evento FormClosing:


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

gey Profilo | Newbie

Molte grazie, funziona, tutto ok.
Mi hai spiegato quello che non sapevo.
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-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5