Renseignement sur les MDI mères et filles

Résolu
J_il Messages postés 109 Date d'inscription mardi 27 mars 2007 Statut Membre Dernière intervention 9 septembre 2008 - 3 sept. 2007 à 13:32
J_il Messages postés 109 Date d'inscription mardi 27 mars 2007 Statut Membre Dernière intervention 9 septembre 2008 - 5 sept. 2007 à 12:21
Bonjour à tous, je me permets de vous demander de l'aide car je reste baba lol

Je suis en train de développer un projet en VB 6.0 qui utilise des MDI mères et filles.

Lorsque je veux fermer une feuilles, j'utilise soit le menu ou bien l'événement Unload. Dans le menu il n'y a pas de problème, ma fermeture de programme fonctionne à merveille. Mais dans l'événement Unload, le même code ne fonctionne pas ? Pourquoi ?

Ce code concerne une MsgBox qui demande si on est sûr de quitter oui ou non le programme !

Voici le code :

Dim int_reponse_msgbox As Integer 'variable qui sert à recevoir ce que renvoie la MsgBox complexe

int_reponse_msgbox = MsgBox("Etes-vous sûr de vouloir quitter l'application ?", vbYesNo + vbExclamation, "Quitter")
       
If int_reponse_msgbox = vbYes Then End

Je ne comprend pas pourquoi cela ne fonctionne pas !

Si vous saviez m'aider merci d'avance à tous

J-il

20 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
3 sept. 2007 à 14:59
Salut,



Dans le menu quitter, c'est un menu perso, donc l'événement ne fait rien en soit.

L'événement Unload par contre est déclenché lorsque la fenêtre se ferme. Il est donc trop tard pour faire quoi que ce soit : elle se fermera de toute façon !

Il faut placer ton code dans l'événement QueryUnload qui lui peut être annulé par le paramètre Cancel :

Dim int_reponse_msgbox As Integer 'variable qui sert à recevoir ce que renvoie la MsgBox complexe

int_reponse_msgbox = MsgBox("Etes-vous sûr de vouloir quitter l'application ?", vbYesNo + vbExclamation, "Quitter")
       
If int_reponse_msgbox = vbYes Then
    End 'pas propre ! A remplacer par un Unload(me) !
else
    Cancel = true
end if

______________________________________
DarK Sidious
3
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
3 sept. 2007 à 13:41
Salut,
Dans le Unload je dirais qu'il faut que tu mettes a jour la variable Cancel selon le choix de la msgbox
Et d'ailleurs qu'est ce qui ne fonctionne pas?

@+: Ju£i?n
Pensez: Réponse acceptée
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
3 sept. 2007 à 13:56
Salut,

Lol oui c'est sûr que savoir ce qui ne fonctionne pas pourrais nous aider à résoudre le problème...
______________________________________
DarK Sidious
0
J_il Messages postés 109 Date d'inscription mardi 27 mars 2007 Statut Membre Dernière intervention 9 septembre 2008
3 sept. 2007 à 14:06
Merci à vous de prendre attention à mon problème...

Ce qui ne fonctionne pas c'est que lorsque je clique sur la croix rouge de ma MDI, il m'affiche ma message box avec le oui et non et que lorsque je fais non il quitter quand même le programme...

Ce que je ne comprend pas c'est que ce code fonctionne super bien dans le menu quitter donc si je dis non il ferme rien et si je dis oui il quitter biensûr !

Voila ce qu'il se passe et je ne comprends pas pourquoi ?

Merci d'avance les gars

J-il
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
3 sept. 2007 à 14:27
Pour mieux t'aider, il faudrait voir le code que tu as mis dans le Form_Unload ou QueryUnload, et celui dans le menu Quitter

MPi
0
J_il Messages postés 109 Date d'inscription mardi 27 mars 2007 Statut Membre Dernière intervention 9 septembre 2008
3 sept. 2007 à 19:22
Merci Darksidious, je vais tester mon code dans le QueryUnload de la MDI

Je te dis quoi !
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
3 sept. 2007 à 19:45
Salut,

Ben tu me donne cent balles et un mars et ca ira

______________________________________
DarK Sidious
0
J_il Messages postés 109 Date d'inscription mardi 27 mars 2007 Statut Membre Dernière intervention 9 septembre 2008
3 sept. 2007 à 20:39
Et bien voilà, cela fonctionne à merveille au fait j'avais déjà essayé ce que tu m'a filé Darksidisous mais je n'avais pas mis le Cancel = True

Donc voici mon code final et dans l'événement Unload de la MDI




Dim int_reponse_msgbox As Integer 'variable qui sert à recevoir ce que renvoie la MsgBox complexe


int_reponse_msgbox = MsgBox("Etes-vous sûr de vouloir quitter l'application ?", vbYesNo + vbExclamation, "Quitter")
       
If int_reponse_msgbox = vbYes Then


    Unload Me


Else


    Cancel = True


End If

Je te remercie vraiment c'est parfois super bête mais on peut chercher lorsqu'on est plus ou moins novice dans ce domaine.

Merci encore à tous et surtout à toi Darksidisous

J-il
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
3 sept. 2007 à 20:54
Salut,

Tiens c'est marrant cà, j'avais jamais remarqué que l'événement Unload de la MDI possèdait un paramètre cancel !
______________________________________
DarK Sidious
0
J_il Messages postés 109 Date d'inscription mardi 27 mars 2007 Statut Membre Dernière intervention 9 septembre 2008
3 sept. 2007 à 21:15
Re Darksidisous,

Dis tant que j'y suis j'ai aussi une petite question sur les InputBox !

Je les utilisent lors de recherche, donc quand je recherche une personne si j'entre rien et que je clique sur ok, il me dit bien que je n'ai pas entré quelque chose dans la boite. Mais comment gère le bouton annuler de cette InputBox ????

Moi j'aimerais savoir si c'est possible que lorsque je fais annuler, il me ferme ma feuille ?

Si oui comment dois-je plus ou moins procéder ??

Merci d'avance
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
3 sept. 2007 à 21:21
Salut,

Il suffit de tester la valeur de retour : si chaîne vide("") alors click sur Ok, si vbNullString alors click sur annuler, ou un truc dans ce genre.
______________________________________
DarK Sidious
0
J_il Messages postés 109 Date d'inscription mardi 27 mars 2007 Statut Membre Dernière intervention 9 septembre 2008
3 sept. 2007 à 21:23
Pour le moement j'ai ceci :

str_initiale = InputBox("Entrez la première lettre du nom du professeur ou son nom complet :" + Chr(13) + Chr(13) _
                             + Chr(13) + "Exemple : dup pour dupont", "Recherche du professeur")


If str_initiale = "" Then


        MsgBox "Aucun nom de professeur encodé !", , "Pas de nom encodé !"
        Call Form_Activate
        Exit Sub


End If

Donc la quand je n'entre rien et que je clique sur Ok ben il m'envoie bien cette MsgBox mais pour annuler je trouve pas !
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
4 sept. 2007 à 06:38
Salut,

If str_initiale = "" Then

        MsgBox "Aucun nom de professeur encodé !", , "Pas de nom encodé !"
        Call Form_Activate
        Exit Sub

else if str_initiale = vbNullString Then

    'click sur le bouton annuler

End If

______________________________________
DarK Sidious
0
J_il Messages postés 109 Date d'inscription mardi 27 mars 2007 Statut Membre Dernière intervention 9 septembre 2008
4 sept. 2007 à 09:46
Salut,

Il n'y a pas moyen il me détecte toujours la première option ! C'est-à-dire Aucun nom de professeur encodé.

Je trouve ça bête qu'on ne puisse pas configurer plus facilement les deux boutons !!!!
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
4 sept. 2007 à 10:00
Salut,

Arf, c'est peut-être l'inverse alors, je sais plus, fais une recherche sur le forum, la question a déjà été posée !

Perso, je n'utilise plus l'input box : je le trouve bien chiant à utiliser que ce soit au niveau du développeur (il n'est pas personnalisable !) ou du côté de l'utilisateur (y'a très peu de logiciel qui affiche un input box ! Bien souvent, il s'agit de boîte d'option avec plusieurs textbox et des options button, etc.).
______________________________________
DarK Sidious
0
J_il Messages postés 109 Date d'inscription mardi 27 mars 2007 Statut Membre Dernière intervention 9 septembre 2008
4 sept. 2007 à 22:26
Salut, je ne trouve toujours rien sur l'inputBox grrrrrrrrrrrrr jte dis pas !!!!!!

Si quelqu'un à une solution.................
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
5 sept. 2007 à 00:40
Salut,

solution dénichée ici : http://www.vbfrance.com/codes/DETECTER-CANCEL-SUR-INPUTBOX_31308.aspx

PS:
DarkSidioux , tu gardes les cent balles mais on partage le mars

<hr />I LIKE TO BE HERE WHEN I CAN
<hr />
0
J_il Messages postés 109 Date d'inscription mardi 27 mars 2007 Statut Membre Dernière intervention 9 septembre 2008
5 sept. 2007 à 09:36
Salut, chaibat05, solution testée mais ne convient pas à ce que j'aimerais, sinon cela j'aurais pu le faire hihihihi je suis tout de même pas aussi nul lol
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
5 sept. 2007 à 11:48
Salut,


Moi qui n' ai eu recours aux InputBox qu' une ou deux fois dans ma vie,
je préconise la privatisation de ce service D'  autant plus que ça ne coute rien:
Une feuille,une TextBox et deux bouttons.Et l' acceuil et le service après vente
sont meilleurs.


<hr />

I LIKE TO BE HERE WHEN I CAN


<hr />
0
J_il Messages postés 109 Date d'inscription mardi 27 mars 2007 Statut Membre Dernière intervention 9 septembre 2008
5 sept. 2007 à 12:21
Lol tu as bien raison chaibat je commence à penser que je vais me faire ma propre InputBox qui sera beaucoup plus programmable en plus !

Merci tout de même
0
Rejoignez-nous