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

Jayme65 64 Messages postés lundi 23 avril 2007Date d'inscription 15 décembre 2016 Dernière intervention - 25 oct. 2012 à 12:07 - Dernière réponse : NHenry 14229 Messages postés vendredi 14 mars 2003Date d'inscription 14 juillet 2018 Dernière intervention
- 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
c148270 303 Messages postés mercredi 12 janvier 2005Date d'inscription 3 octobre 2013 Dernière intervention - 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é 78 internautes ce mois-ci

Commenter la réponse de c148270
NHenry 14229 Messages postés vendredi 14 mars 2003Date d'inscription 14 juillet 2018 Dernière intervention - 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
cs_Le Pivert 5211 Messages postés jeudi 13 septembre 2007Date d'inscriptionContributeurStatut 13 juillet 2018 Dernière intervention - 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
NHenry 14229 Messages postés vendredi 14 mars 2003Date d'inscription 14 juillet 2018 Dernière intervention - 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.