Fermeture automatique de MsgBox

Signaler
Messages postés
2
Date d'inscription
mardi 24 juin 2003
Statut
Membre
Dernière intervention
12 mai 2006
-
cs_nereck
Messages postés
3
Date d'inscription
jeudi 29 décembre 2005
Statut
Membre
Dernière intervention
7 juin 2006
-
Bonjour à toutes et à tous,

Voila, j'ai un pb (... non sans déc) en VB.Net 2003 :
Je dispose d'une feuille principale MDI qui contient plusieurs feuilles enfants.
Mon programme les ferme automatiquement au bout d'un certain temps d'inactivité.
Pour fermer les feuilles enfants contenues dans ma feuille principale, pas de pb. Par contre, il peut arriver qu'une des feuilles enfants génère une MsgBox après une action de la part de l'utilisateur. Et la, si ce dernier part et ne revient pas (perdu sur le chemin du retour, rupture d'anevrisme...faut tout prévoir...) : ma fermeture automatique plante, car je détruits toutes les feuilles enfants, y compris celle qui a généré ma MsgBox! Et ca, VB.Net, il aime pas trop...

Auriez-vous une solution ?

Sachant que :
- J'ai essayé le SendKeys.Send pour envoyer a mon appli la touche ALT + N pour valider le bouton "NON" de ma MsgBox
- J'ai essayé le SendKeys.Send pour envoyer a mon appli la touche ECHAP pour valider le bouton "OK" de ma MsgBox
- Les boutons des mes MsgBox varient : un coup y a du VbYesNo, un coup du VbOK, un coup du VbYesCancel, etc...

Je vous remercie par avance pour votre aide!


Richy

4 réponses

Messages postés
1854
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
24
Bonjour ,

Possibilité de remplacer MsgBox par Popup avec un timer.

Const TIMEOUT = 10
Set objShell = WScript.CreateObject("WScript.Shell")


Reponse = objShell.Popup(vbCrLf & _
"Ce Popup remplace un MsgBox" &vbCrLf&vbCrLf& "Sans action de votre part," &vbCrLf&vbCrLf&_
"ce popup s'effacera dans " &vbCrLf& TIMEOUT & " secondes" &vbCrLf&vbCrLf&_
"Vous ne pouvez pas fermer ce popup par la croix !!!" ,TIMEOUT, _
"MsgBox personnalisé",vbYesNo + vbQuestion)

Select Case Reponse
Case vbYes: objShell.Popup "Vous avez cliqué sur Oui" & vbCrLf & vbCrLf & vbCrLf,TIMEOUT
Case vbNo: objShell.Popup "Vous avez cliqué sur Non" & vbCrLf & vbCrLf & vbCrLf,TIMEOUT
Case -1: Wscript.Quit
End Select
Set objShell = Nothing

jean-marc
Messages postés
14648
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
17 février 2020
139
Bonjour

Sinon, essaye de prévoir un comportement par défaut, tu peux utiliser un attribut dont tu définit la valeur pour savoir si la fermeture est automatique ou manuelle.

Il est plus facile de batiser kk1 que de la convertir. (surtout en programmation)
Une question se pose sur le forum, pas en privé
NHenry (VB6, VBA excel, VB.NET, C++, C#.Net)
Messages postés
2
Date d'inscription
mardi 24 juin 2003
Statut
Membre
Dernière intervention
12 mai 2006

Merci bien,

Je vais étudier vos réponses et voir si y a moyen de jouer avec l'une ou l'autre.

Bonne continuation!
Messages postés
3
Date d'inscription
jeudi 29 décembre 2005
Statut
Membre
Dernière intervention
7 juin 2006

L'histoire de la popup fonctionne très bien. Merci à toi JM ! Cela m'est très pratique.