Application.Exit() et FormClosing événement Vb.net
J'ai une seule application windows form qui est en cours d'exécution dans la barre d'état système.Si l'utilisateur appuyez sur la touche X de l'écran de windows une boîte de message s'affiche avec Oui et Non ( Oui ->fermer le formulaire---N->gardez le formulaire en cours d'exécution dans la barre d'état système).
Je pensais à éviter le scénario quand à l'utilisateur d'ouvrir une autre instance de l'application lorsqu'il y a déjà une instance en cours d'exécution, donc j'ai utilisé ce code :
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
Le problème est que lorsque je veux tester ce que le message est affiché, mais lorsque j'appuie sur ok, une nouvelle boîte de message s'affiche (que l'un de Private Sub Form_FormClosing ).Si je choisis PAS, je vais avoir à l'instance en cours d'exécution!
J'ai lu que l'Application.Quitter les feux de la Form_FormClosing événement.
Est-il possible d'annuler le déclenchement de la Form_FormClosing événement,ou suis-je en train de faire quelque chose de mal?
"c'est la formclosing procédure
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: je ne suis pas un programmeur merci donc de ne pas être à la dure avec moi:)
OriginalL'auteur Operagust | 2012-03-27
Vous devez vous connecter pour publier un commentaire.
Vous n'avez pas besoin de Tuer le processus en cours ou de l'utilisation de la
End
Déclaration. Si vous devez utiliser ces puis il y a quelque chose qui cloche avec votre application.Lorsque vous souhaitez mettre fin à votre utilisation de l'application
Me.Close
. Cela déclenche laFormClosing
événement:Arrêter plus d'une copie de votre demande d'exécution d'utiliser l'option de Faire Seule Instance De L'Application
OriginalL'auteur Matt Wilko
Dans la situation où vous êtes juste de commencer votre demande et sont à l'essai pour les cas précédents, j'ai utilisé le VB Fin Déclaration pour mettre fin à l'application.
OriginalL'auteur Mark Hall
Il va Fermer la exe de barre des tâches ou tuer le Processus. Si l'utilisateur de Fermer la
Demande de barre des tâches.
événement va fermer le application si elle est fermée par l'Utilisateur à partir de
Taskber
OriginalL'auteur Jasmeet