Je souhaite une propriété de type minuteur pour les boîtes de message. Après l'affichage de l'erreur, il doit disparaître sans intervention de l'utilisateur après 5 secondes.Comment masquer automatiquement la boîte de message?
Répondre
timer.Interval=5000;
timer.Enabled=true;
MessageBox.Show("Should close automatically");
Associez l'extrait suivant avec Tick
eventhandler de la minuterie:
private void timer_Tick(object sender,EventArgs evt) {
timer.Enabled=false;
SendKeys.Send("{ESC}"); // SendWait as alternative
}
Impossible avec la classe MessageBox
; vous devez créer votre propre formulaire qui imite et ajouter cette fonctionnalité vous-même.
Eh bien, vous pouvez le faire avec les boîtes de message de l'API Windows. Vous n'avez plus qu'à saisir la poignée de la fenêtre des boîtes de message, puis poster un message WM_CLOSE une fois que la minuterie se déclenche. Assurez-vous que vous notez l'événement de la fermeture de la fenêtre et abandonnez le chronomètre dans cette éventualité. Vous auriez juste besoin d'un peu de P/Invoke. Mais une meilleure solution est de ne pas utiliser une boîte de dialogue selon ma réponse à cette question Q. –
Je devrais probablement l'avoir formulé comme "MessageBox" n'a pas cette fonctionnalité, vous avez besoin d'une solution de contournement ". – BeemerGuy
Une boîte de message est la mauvaise solution. Vous avez besoin d'une fenêtre de conseil.
Qu'est-ce qu'une "fenêtre de conseil"? Si son quelque chose dans les formes dans Windows est nouveau pour moi - si c'est quelque chose que vous créez alors c'est une réponse beaucoup trop mince. – Murph
Il est trop mince une réponse si vous devez faire un peu de travail? Je pense aux types de messages que Windows affiche lorsque les mises à jour ont été mises à jour. Vous pourriez très facilement montrer une fenêtre sans chrome et juste la tuer après 5s, mais il doit y avoir un composant système standard. –
Qu'en est-il de l'utilisation de sendkeys?
Quelque chose comme ceci:
http://msdn.microsoft.com/en-us/library/system.windows.forms.sendkeys.send.aspx
au moins pour vous lancer dans la recherche.
Si cela est sur une page Web, vous pouvez utiliser javascript ou jQuery pour un effet tout à fait agréable. Ceci est souvent appelé "fondu" animation. Il utilise une minuterie.
Avec cette approche, vous n'utilisez pas une véritable alerte ou MessageBox. Vous utilisez un <div>
ou un autre élément HTML nommé.
Vous pouvez trouver le code here pour ce que vous faites en utilisant javascript. Si vous utilisez jQuery, recherchez fadeOut
. Voici un article.
- 1. Comment masquer automatiquement une zone de texte
- 2. boîte de message
- 3. Imprimer HWND à la boîte de message
- 4. Comment masquer automatiquement un contrôle contextuel modal?
- 5. Comment imprimer la valeur HRESULT dans la boîte de message?
- 6. boîte de message n'affiche le message
- 7. Boîte de message dans ASP.NET
- 8. Comment basculer confirmer la boîte de message de aspx.cs page
- 9. Conseil boîte de message personnalisé
- 10. Comment afficher la boîte de message dans l'application MVC
- 11. Masquer automatiquement les éléments visibles de l'enfant
- 12. Boîte de message en Python
- 13. Boîte de dialogue Message/Confirmer
- 14. Fermer automatiquement la boîte aux lettres en C#
- 15. Masquer la boîte de dialogue "Voice to Text" Android
- 16. Boîte de dialogue contextuelle Masquer après 10sec
- 17. Recharger la page sans la boîte de message indiquant
- 18. Supprimer la boîte de message pour la version d'essai infragistics
- 19. C# VS2008 supprimer la boîte de message de dll?
- 20. Désactiver la boîte de message de sécurité Outlook
- 21. Modifier le titre de la boîte de message dans ASP.NET
- 22. Ne pas fermer automatiquement la boîte de dialogue onClick
- 23. Boîte de message Windows mobile this.close()?
- 24. Boîte de message dans Asp.NET C#
- 25. Centrage de la boîte de message par rapport au formulaire
- 26. La boîte de message provoque une perte de focus
- 27. C# Winforms Propriétés de la boîte de message
- 28. Application de console affichant la boîte de message sur l'erreur
- 29. Problèmes avec l'affichage de la boîte de message dans asp.net
- 30. YUI Uploader: ouvrir automatiquement la boîte de dialogue
+1; Cela fonctionne comme une solution de contournement. Ma réponse était spécifique à la classe 'MessageBox' =) – BeemerGuy
Il y a un certain nombre de raisons pour lesquelles cela est mauvais - d'autant plus si c'est une boîte de message qui a été ouverte en premier lieu et qui pourrait donc déjà avoir été fermée. – Murph