Impossible de quitter directement une application! [Résolu]

Messages postés
64
Date d'inscription
lundi 23 avril 2007
Dernière intervention
15 décembre 2016
- 25 oct. 2012 à 12:07 - Dernière réponse :
Messages postés
14298
Date d'inscription
vendredi 14 mars 2003
Dernière intervention
15 novembre 2018
- 26 oct. 2012 à 12:35
Bonjour,

Je me rends compte que quand je donne l’ordre de quitter à mon programme...celui ci ne peut s'empêcher de continuer à exécuter les lignes qui suivent quand même!! Est-ce bien normal? ;-)

Voici un exemple simple qui permet de le vérifier:

Class MainWindow 
    Private Sub MainWindow_Loaded(sender As Object, e As System.Windows.RoutedEventArgs) Handles Me.Loaded
        Dim test As Integer = 1
        If test = 1 Then
            MsgBox("First Message Box", 48, "Attention")
            Me.Close()
        End If
        If test = 1 Then
            MsgBox("Second Message Box", 48, "Attention2")
            Me.Close()
        End If
    End Sub
End Class


Vous verrez que rien n'empêche la deuxième fenêtre de s'ouvrir!
Comment faire svp, pour un arrêt "immédiat"??

Si je remplace le 'Me.Close' en 'Application.Current.Shutdown()'...il n'y a qu'une seule fenêtre qui s'affiche

Class MainWindow 
    Private Sub MainWindow_Loaded(sender As Object, e As System.Windows.RoutedEventArgs) Handles Me.Loaded
        Dim test As Integer = 1
        If test = 1 Then
            MsgBox("First Message Box", 48, "Attention")
            Application.Current.Shutdown()
        End If
        If test = 1 Then
            MsgBox("Second Message Box", 48, "Attention2")
            Application.Current.Shutdown()
        End If
    End Sub
End Class


...mais j'ai comme message "A first chance exception of type 'System.NullReferenceException' occurred in WpfApplication1.exe". Ce qui est moins "grave" car l'utilisateur final ne verra pas cette erreur du debugger...mais quand même, je voudrais savoir comment y arriver "proprement"!

D'avance merci!
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
Messages postés
303
Date d'inscription
mercredi 12 janvier 2005
Dernière intervention
3 octobre 2013
- 26 oct. 2012 à 02:35
3
Merci
Bonjour
A ma connaissance seules les instructions end sub ou exit sub arrête l'exécution des procédures ou fonctions.

Bonne journée

Merci c148270 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 90 internautes ce mois-ci

Commenter la réponse de c148270
Messages postés
14298
Date d'inscription
vendredi 14 mars 2003
Dernière intervention
15 novembre 2018
- 25 oct. 2012 à 12:52
0
Merci
Bonjour,

Et avec un Return après le Close ?

If test = 1 Then
MsgBox("First Message Box", 48, "Attention")
Me.Close()
Return
End If

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list
---
Mon site
Commenter la réponse de NHenry
Messages postés
5524
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
16 novembre 2018
- 26 oct. 2012 à 11:32
0
Merci
Bonjour,

J'ai essayé avec Option Strict On, cela génére une erreur. Erreur corrigé et cela fonctionne!
Travailler toujours avec Option Strict On
Voici ton code:

 Dim test As Integer = 1
        If test = 1 Then
            MsgBox("First Message Box", CType(48, MsgBoxStyle), "Attention")
            Me.Close()
        End If
        If test = 1 Then
            MsgBox("Second Message Box", CType(48, MsgBoxStyle), "Attention2")
            Me.Close()
        End If

@+Le Pivert
Commenter la réponse de cs_Le Pivert
Messages postés
14298
Date d'inscription
vendredi 14 mars 2003
Dernière intervention
15 novembre 2018
- 26 oct. 2012 à 12:35
0
Merci
Bonjour,

En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).

Voir ensuite si le demandeur répond.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list
---
Mon site
Commenter la réponse de NHenry

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.