Ho una singola applicazione di Windows che è in esecuzione nell'icona della barra delle applicazioni. Se l'utente preme il tasto X della finestra, viene visualizzata una finestra di messaggio con Sì e No (Sì -> chiudi il modulo --- No-> mantieni il modulo in esecuzione nell'icona nella barra delle applicazioni). Stavo pensando ad impedire lo scenario quando l'utente apre un'altra istanza dell'applicazione quando c'è già un'istanza in esecuzione in modo ho usato questo codice:Evento Application.Exit() e FormClosing in Vb.net
If Process.GetProcessesByName(Process.GetCurrentProcess.ProcessName).Length> 1 Then
MessageBox.Show("Another instance is running", "Error Window", MessageBoxButtons.OK,
MessageBoxIcon.Exclamation)
Application.Exit()
End If
Il problema è che quando voglio testare questo il messaggio viene visualizzato ma dopo aver premuto ok, viene visualizzata una nuova finestra di messaggio (quella da Private Sub Form_FormClosing). Se scelgo NO, dovrò eseguire l'istanza! Ho letto che Application.Exit genera l'evento Form_FormClosing.
Esiste la possibilità di annullare l'attivazione dell'evento Form_FormClosing o sto facendo qualcosa di sbagliato?
'questa è la procedura FormClosing
Private Sub Form_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
Try
Dim response As MsgBoxResult
response = MsgBox("Are you sure you want to exit", CType(MsgBoxStyle.Question + MsgBoxStyle.YesNo, MsgBoxStyle), "Confirm")
'If the user press Yes the application wil close
'because the application remains in taskmanager after closing i decide to kill the current process
If response = MsgBoxResult.Yes Then
Process.GetCurrentProcess().Kill()
ElseIf response = MsgBoxResult.No Then
e.Cancel = True
Me.WindowState = FormWindowState.Minimized
Me.Hide()
NotifyIcon1.Visible = True
End If
PS: io non sono un programmatore quindi per favore non essere a dura con me :)
Grazie per la risposta ... Ho trovato l'impostazione da Proprietà di Visual Studio si dovrebbe essere ok anche per usare questo metodo ...sfortunatamente non sono riuscito a capire perché la mia applicazione non si spenga dal task manager dopo la chiusura ... è per questo che ho trovato questa soluzione temporanea .... Fondamentalmente l'applicazione è un semplice modulo di Windows. – Operagust