Fermer appli avec croix rouge [Résolu]

Messages postés
38
Date d'inscription
samedi 20 juin 2009
Statut
Membre
Dernière intervention
12 septembre 2011
- - Dernière réponse : Tursiop60
Messages postés
38
Date d'inscription
samedi 20 juin 2009
Statut
Membre
Dernière intervention
12 septembre 2011
- 15 juil. 2009 à 23:21
Bonsoir,

J'ai une application qui s'ouvre sur un sommaire. Je voudrais, quand on clique sur la croix en haut à droite, voir apparaitre une form de confirmation. J'ai fait ça :

Private Sub Sommaire_Closing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.Closing
e.Cancel = True
Quitter_logiciel.Show()
End Sub

Ca marche très bien puisque le form "Quitter_logiciel" s'ouvre parfaitement. Le problème c'est quand, dans cette forme, on clique sur oui, rien ne se passe et le logiciel ne se ferme pas

Voici le code pour "Quitter_logiciel" :

Public Class Quitter_logiciel

Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.Click
Me.DialogResult = System.Windows.Forms.DialogResult.OK
Me.Close()
Sommaire.Close()
End Sub

Private Sub Cancel_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cancel_Button.Click
Me.DialogResult = System.Windows.Forms.DialogResult.Cancel
Me.Close()
Sommaire.Enabled() = True
Sommaire.Select()
End Sub

End Class

Quelqu'un pourrait-il me dire ce qui ne va pas ?

Merci d'avance
Afficher la suite 

6 réponses

Meilleure réponse
Messages postés
3181
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
25
3
Merci
Salut,

Alors je te conseil plutot d'utilise le ShowDialog et le retour avec un DialogResult
Configure tes boutons OK_Button et Cancel_Button avec leurs propriété DialogResult (en mode conception), comme ça, tu n'as aucun code à mettre dans ta form Quitter_logiciel

Puis dans ta form Sommaire :

Private Sub Sommaire_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
  If Not Quitter_logiciel.ShowDialog() = Windows.Forms.DialogResult.OK Then
    e.Cancel = True
  End If
End Sub

_____________
Kenji

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 195 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Charles Racaud
Messages postés
38
Date d'inscription
samedi 20 juin 2009
Statut
Membre
Dernière intervention
12 septembre 2011
0
Merci
DESOLE voici le même message avec les couleurs :

Bonsoir,

J'ai une application qui s'ouvre sur un sommaire. Je voudrais, quand on clique sur la croix en haut à droite, voir apparaitre une form de confirmation. J'ai fait ça :

Private Sub Sommaire_Closing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.Closing
e.Cancel = True
Quitter_logiciel.Show()
End Sub


Ca marche très bien puisque le form "Quitter_logiciel" s'ouvre parfaitement. Le problème c'est quand, dans cette forme, on clique sur oui, rien ne se passe et le logiciel ne se ferme pas

Voici le code pour "Quitter_logiciel" :

Public Class Quitter_logiciel

Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.Click
Me.DialogResult = System.Windows.Forms.DialogResult.OK
Me.Close()
Sommaire.Close()
End Sub

Private Sub Cancel_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cancel_Button.Click
Me.DialogResult = System.Windows.Forms.DialogResult.Cancel
Me.Close()
Sommaire.Enabled() = True
Sommaire.Select()
End Sub

End Class



Quelqu'un pourrait-il me dire ce qui ne va pas ?

Merci d'avance
Commenter la réponse de Tursiop60
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
28
0
Merci
C'est normal puisque tu annule la fermeture de la form (e.cancel=True)

Il ne faut l'annule que si tu ne confirme pas :

Private Sub Sommaire_Closing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.Closing

If Quitter_logiciel.Show()=System.Windows.Forms.DialogResult.Cancel Then
  e.Cancel = True
End If

End Sub 


[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i
Commenter la réponse de cs_casy
Messages postés
38
Date d'inscription
samedi 20 juin 2009
Statut
Membre
Dernière intervention
12 septembre 2011
0
Merci
Merci Charles,

Ca marche parfaitement.

Pour information casy le code suivant :
Quitter_logiciel.Show()=System.Windows.Forms.DialogResult.Cancel

Retourne une erreur de syntaxe.
Commenter la réponse de Tursiop60
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
28
0
Merci
Oui normal .Show ne retourne aucun résultat, il faut utiliser .ShowDialog à la place.
Charles a été plus perspicace que moi sur le coup

[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i
Commenter la réponse de cs_casy
Messages postés
38
Date d'inscription
samedi 20 juin 2009
Statut
Membre
Dernière intervention
12 septembre 2011
0
Merci
Pas de souci.

Merci.
Commenter la réponse de Tursiop60