IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Impossible de quitter directement une application!


Sujet :

VB.NET

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 158
    Points : 41
    Points
    41
    Par défaut Impossible de quitter directement une application!
    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:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    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

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    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!

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 153
    Points : 25 071
    Points
    25 071
    Par défaut
    me.close ne fait que fermer la fenetre, ca n'empeche en rien l'exécution du code qui suit (et c'est logique)
    on eut alors utiliser exit sub pour sortir de la sub

    après un shutdown je mettais exit sub aussi, mais apparemment ca ne continue pas l'exécution de la sub et donc ca serait inutile

    le first chance veut simpelement dire qu'une erreur a été catchée, ca peut etre dans le framework ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 158
    Points : 41
    Points
    41
    Par défaut
    La solution, pour moi, a été de placer un 'Return' pour sortir du sub. L'application se ferme alors sans que je vois apparaitre la deuxième fenêtre (qui n'était là, dans mon exemple, que pour illustrer que le code continuait à se dérouler même après l'instruction 'Me.Close'

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    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()
                Return
            End If
            If test = 1 Then
                MsgBox("Second Message Box", 48, "Attention2")
            End If
        End Sub
    End Class

Discussions similaires

  1. [Android] Impossible de crée run une application
    Par chepac dans le forum Eclipse
    Réponses: 0
    Dernier message: 07/12/2010, 11h17
  2. Quitter rapidement une application.
    Par HASSIOMAR dans le forum Bases de données
    Réponses: 4
    Dernier message: 14/11/2010, 16h30
  3. Réponses: 0
    Dernier message: 16/04/2009, 15h35
  4. Quitter proprement une application ?
    Par MaelstroeM dans le forum VB.NET
    Réponses: 2
    Dernier message: 25/11/2008, 12h40
  5. Réponses: 2
    Dernier message: 03/04/2008, 15h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo