Demander avant fermeture d'application [Résolu]

Signaler
Messages postés
10
Date d'inscription
vendredi 10 décembre 2004
Statut
Membre
Dernière intervention
29 juillet 2005
-
Messages postés
380
Date d'inscription
vendredi 22 avril 2005
Statut
Membre
Dernière intervention
24 février 2015
-
Voilà, j'ai un petit programme qui me permet de saisir du texte (je sais, ce n'est pas très intéressant mais je débute). Je programme en VB.NET et je cherche à avoir une fenêtre d'avertissement (msgbox) me demandant si je souhaite vraiment quitter le programme. Je n'arrive pas a faire correspondre ma msgbox à la croix permettant la fermeture du programme.
Merci de votre aide

PS: Désolé si le thème ne correspond pas mais je ne savais pas trop où poster cette question

13 réponses

Messages postés
10
Date d'inscription
vendredi 10 décembre 2004
Statut
Membre
Dernière intervention
29 juillet 2005

Voilà, j'ai trouvé (enfin, on m'a aidé hein ). La solution est la suivante :


Private
Sub Form1_OnClosing(
ByVal sender
As
Object,
ByVal e
As System.ComponentModel.CancelEventArgs)
Handles
MyBase.Closing

Dim MsgBoxAnswer
As MsgBoxResult
MsgBoxAnswer = MsgBox("Voulez vous vraiment quitter?", MsgBoxStyle.YesNo, "Quitter l'application")

If MsgBoxAnswer = MsgBoxResult.Yes
Then
e.Cancel =
False
Else
e.Cancel =
True
End
If
End
Sub

Un petit (grand) merci a doro pour son lien
@ ++ pour un nouveau casse tête lol
3
Merci

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

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

Messages postés
380
Date d'inscription
vendredi 22 avril 2005
Statut
Membre
Dernière intervention
24 février 2015
41
bonsoir,
je ne programme pas en vb.net mais vb6 je ne sais pas si ça t'aideras mais au cas òu...
en vb6 on place le code dans l'évènement queryunload de la form
tiens moi au courant
doro
Messages postés
154
Date d'inscription
samedi 25 octobre 2003
Statut
Membre
Dernière intervention
5 septembre 2008

Private Sub Form_Unload(Cancel As Integer)
If (MsgBox("Etes vous sure de vouloir quitter l'application ?", vbYesNo, "Titre") = vbNo) Then
'opération annulée
Exit Sub
Else
'opération validée
End
End If
End Sub

Couscous
Messages postés
8
Date d'inscription
lundi 20 décembre 2004
Statut
Membre
Dernière intervention
28 juillet 2005

salut,

voici un ti bout de code qui je pense pourra t'aider :

en vb.net moi j'utilise l'événement form_closing pour faire correspondre la croix avec l'évenement de fermeture



Private
Sub maForm_Closing(
ByVal sender
As
Object,
ByVal e
As System.ComponentModel.CancelEventArgs)
Handles
MyBase.Closing


Dim MsgBoxAnswer
As MsgBoxResult


MsgBoxAnswer = MsgBox("Do you want to exit application?", MsgBoxStyle.YesNo, "Exit application")



If (MsgBoxAnswer = MsgBoxResult.Yes)
Then

End

Else

Exit Sub

End Sub

En espérant avoir répondu à ta question.

FabFly
Messages postés
20
Date d'inscription
lundi 28 juin 2004
Statut
Membre
Dernière intervention
13 septembre 2005

Salut, moi je fais comme ca :

Private Sub Form_Unload(Cancel As Integer)
'confirmation en sortie
If Not MsgBox("Êtes vous certain de vouloir quitter le programme ? ", vbQuestion + vbYesNo, Me.Caption) = vbYes Then
Cancel = vbCancel
End If
End Sub
Messages postés
10
Date d'inscription
vendredi 10 décembre 2004
Statut
Membre
Dernière intervention
29 juillet 2005

Tout d'abord, merci pour vos nombreuses réponses (je les ai toutes prises).
Concernant la réponse de 406755 FabFly, il manquait un end if après le else, sinon, ca fonctionne très bien.
Ensuite, pour la réponse de =299251 insomnix, il me dit que Me.Caption n'est pas un membre de menu.Form1 (ma fenêtre principale s'appelle Form1_Load).
En ce qui concerne la réponse de 184601 Paladin2107, rien ne se passe, je chercherai un peu pourquoi (si vous avez aussi le temps, n'hésitez pas a jetter un oeil
Et pour finir, pour la réponse de =496278 doro81079 , il n'y a pas l'évènement queryunload de la form ... a moins que je ne l'ai pas vu (je suis un débutant lol).

Dans tout les cas, merci de votre aide en espérant qu'un jour je vous retourne l'appareil .
Sur ce, bonne journée
Messages postés
8
Date d'inscription
lundi 20 décembre 2004
Statut
Membre
Dernière intervention
28 juillet 2005

exact désolé pour la boulette du copier/coller :)
vivement les vacances :D
Messages postés
10
Date d'inscription
vendredi 10 décembre 2004
Statut
Membre
Dernière intervention
29 juillet 2005

hep hep hep, petite modification FabFly lol. Lorsque le clique sur le boutton non lors de la demande de fermeture le programme se quitte tout de même.
Je vais un peu chercher mais je pense que l'erreur se situe après le else.
Voila ...
Messages postés
10
Date d'inscription
vendredi 10 décembre 2004
Statut
Membre
Dernière intervention
29 juillet 2005

Bé je cherche et cherche encore LOL. Je ne sais pas d'où le problème peu venir. Avis aux plus initiés pour me venir en aide .
En tout cas, c'est une bonne piste
Messages postés
380
Date d'inscription
vendredi 22 avril 2005
Statut
Membre
Dernière intervention
24 février 2015
41
bonsoir,
pour query c'est normal je suis en vb6 et sinon essai de mettre cancel=1 au lieu de cancel=vbcancel j'ai eu le même prob en vb6 vbcancel il ne comprennait pas
a+
doro
Messages postés
10
Date d'inscription
vendredi 10 décembre 2004
Statut
Membre
Dernière intervention
29 juillet 2005

Hé bé non, cela ne fonctionne pas. De plus, il y a une erreur "Me.Caption". Je l'ai supprimer voir ce que cela faisait mais rien n'y fait. En faisait un déboggage pas à pas (avec mon code donc par conséquent celui de FabFly), je vois que lorsque je clic sur non, il passe bien par le bon chemin mais il quitte tout de même mon programme. Je vous poste donc mon code ci dessous si cela peut m'aider a voir mes erreurs et afin que vous puissiez tester vos méthodes ;)



Private
Sub OpenFileDialog1_FileOk(
ByVal sender
As System.Object,
ByVal e
As System.ComponentModel.CancelEventArgs)
Handles OpenFileDialog1.FileOk



End
Sub



Private
Sub Ouvrir_Click(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles Ouvrir.Click



Dim objstreamreader
As System.io.TextReader

If OpenFileDialog1.ShowDialog() = System.Windows.Forms.DialogResult.OK
Then
objstreamreader = System.IO.File.OpenText(OpenFileDialog1.FileName)
RichTextBox1.Text = objstreamreader.ReadToEnd()
objstreamreader.Close()

Else
End
If
End
Sub



Private
Sub Form1_Load(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles
MyBase.Load

End
Sub
Private
Sub Form1_Closing(
ByVal sender
As
Object,
ByVal e
As System.ComponentModel.CancelEventArgs)
Handles
MyBase.Closing

Dim MsgBoxAnswer
As MsgBoxResult
MsgBoxAnswer = MsgBox("Voulez vous vraiment quitter?", MsgBoxStyle.YesNo, "Quitter l'application")

If MsgBoxAnswer = MsgBoxResult.Yes
Then
End
Else
Exit
Sub
End
If
End
Sub



Private
Sub SauvegarderSous_Click(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles EnregistrerSous.Click

Dim objstreamwriter
As System.io.TextWriter

Dim fichier
As
String
fichier = RichTextBox1.Text

If SaveFileDialog1.ShowDialog() = System.Windows.Forms.DialogResult.OK
Then
objstreamwriter = System.IO.File.CreateText(SaveFileDialog1.FileName)
objstreamwriter.WriteLine(fichier)
objstreamwriter.Close()

Else
End
If
End
Sub

Private
Sub Quitter_Click(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles Quitter.Click

Me.Close()

End
Sub



Private
Sub Nouveau_Click(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles Nouveau.Click

Dim reponse
As MsgBoxResult

If RichTextBox1.Text.Empty
Then
reponse = MessageBox.Show("Attention, ceci va effaçer votre travail en cours!" & vbCrLf & "Voulez-vous Continuez?", "Attention", MessageBoxButtons.YesNo, MessageBoxIcon.Question)

If reponse = MsgBoxResult.Yes
Then
RichTextBox1.Clear()

Else
End
If
End
If
End
Sub



Private
Sub Texte_TextChanged(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)

End
Sub



Private
Sub RichTextBox1_TextChanged(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles RichTextBox1.TextChanged

End
Sub



Protected
Sub ContextMenu1_Popup(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles ContextMenu1.Popup

End
Sub



Private
Sub RichTextBox1_MouseDown(
ByVal sender
As
Object,
ByVal e
As System.Windows.Forms.MouseEventArgs)
Handles RichTextBox1.MouseDown

End
Sub



Private
Sub MenuItem2_Click(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles MenuItem2.Click
Ouvrir_Click(sender, e)

End
Sub



Private
Sub MenuItem4_Click(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles MenuItem4.Click
Nouveau_Click(sender, e)

End
Sub



Private
Sub MenuItem3_Click(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles MenuItem3.Click
SauvegarderSous_Click(sender, e)

End
Sub



Private
Sub MenuItem5_Click(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles MenuItem5.Click
Quitter_Click(sender, e)

End
Sub


End
Class

Merci encore ...
Messages postés
380
Date d'inscription
vendredi 22 avril 2005
Statut
Membre
Dernière intervention
24 février 2015
41
bonsoir,
j'ai trouver ce lien sur le site ça peut peut être t'aider on ne sait jamais
http://plasserre.developpez.com/vsommair.htm
doro
Messages postés
380
Date d'inscription
vendredi 22 avril 2005
Statut
Membre
Dernière intervention
24 février 2015
41
bonjour,
effectivement je n'aurais pas pu t'aider le code n'a rien avoir avec vb6
bonne continuation
doro