J'ai un NotifyIcon qui apparaît dans la barre d'état système et je veux montrer un conseil bulle la première fois que l'application est inactive (comme suggéré ici: C# execute code after application.run()) mais l'événement Idle arrive avant le L'icône apparaît dans la barre d'état système, provoquant l'apparition du ballon. Comment puis-je forcer l'affichage de NotifyIcon avant que j'appelle ShowBalloonTip?Force NotifyIcon à apparaître dans la barre d'état système
Répondre
C'est une course assez fondamentale, c'est un autre processus qui prend soin de l'icône. Windows Explorer. Vous ne pouvez pas dire quand il a pris soin de choses. Appeler Thread.Sleep (500) après avoir défini Visible = true devrait améliorer considérablement les chances. Pensez à afficher l'icône lorsque votre programme démarre.
C'est malheureux, je dois utiliser Thread.Sleep() pour prendre soin des conditions de course. – Drew
Pourquoi pas défini un drapeau au ralenti, puis vérifier l'état du drapeau après avoir défini l'icône Notify Visible:
// Application has become idle
firstTimeIdle = true;
Puis:
// Show notify icon
notifyIcon.Visible = true;
if (firstTimeIdle && !shownBalloon)
{
notifyIcon.ShowBalloonTip(timeout, title, text, icon);
shownBalloon = true;
}
Ce n'est pas exactement mon problème, je l'ai mis en place donc il ne montre qu'une seule fois le ballon, mais si le NotifyIcon n'est pas visible, le ballon n'apparaîtra pas. J'ai besoin d'un moyen de forcer le NotifyIcon à apparaître. – Drew
@Drew - Ah. Je supposais qu'il y avait juste un problème pour que les événements se déroulent dans le bon ordre. La définition de 'notifyIcon.Visible' à' true' devrait le faire apparaître. – ChrisF
- 1. glisser-déposer sur NotifyIcon dans la barre d'état en C#
- 2. NotifyIcon Popup devant la barre des tâches dans FireMonkey
- 3. Comment trouver l'emplacement de l'icône dans la barre d'état système
- 4. Application de la barre d'état système Windows
- 5. Icônes de la barre d'état système déformée
- 6. Force la barre de défilement verticale à afficher dans IE8
- 7. Comment utiliser MouseWheel dans NotifyIcon
- 8. Définir la barre d'état système notifyicon.icon à une image dans le dossier images
- 9. Surcharge NotifyIcon dans .NET
- 10. NotifyIcon au démarrage
- 11. Faire apparaître le paramètre route dans la barre d'adresse
- 12. Réduire le format de la barre d'état système
- 13. Barre d'état système avec Java
- 14. Maximiser l'application dans la barre d'état système?
- 15. Comment faire apparaître une adresse dans la barre d'adresse différemment?
- 16. C# 2008 - NotifyIcon - BaloonTip
- 17. Menu dans la barre système d'Android 3.0
- 18. Minimiser python à la barre d'état système dans Windows (Vista)
- 19. Comment démarrer l'application directement dans la barre d'état système? (.NET C#)
- 20. NotifyIcon reste sur la barre des tâches lorsque l'application se ferme dans Visual Basic 2010
- 21. barre d'état système infobulle de formatage
- 22. Appeler le menu contextuel de NotifyIcon
- 23. C# notifyicon bug dans XP
- 24. La couche de superposition fait apparaître la barre de défilement
- 25. iPhone UIWebView touch cause Barre d'outils à apparaître
- 26. Android: apparaître et disparaître barre de recherche
- 27. C# bascule la fenêtre en cliquant NotifyIcon (icône de la barre des tâches)
- 28. notifyicon animation vb2008
- 29. Modifier NotifyIcon sur un formulaire séparé
- 30. barre de défilement de force sur Safari
En note, j'ai eu quelques problèmes avec NotifyIcons en C# - une des "incohérences" que j'ai rencontrées a été résolue en forçant la propriété Visible à false puis vrai à "rafraîchir" la barre d'état – Simon
Merci, malheureusement à invisible puis visible n'a pas aidé. – Drew
C'est une sorte de demande étrange. Windows ne montrera pas un ballon si l'utilisateur est loin du clavier - et retardera le montrer jusqu'à ce qu'ils reviennent ("afin de maximiser la quantité de temps de face que votre ballon obtient avec l'utilisateur"). Si l'application est inactive, alors presque par définition l'utilisateur n'est pas là, ce qui est exactement le temps où vous ne voulez pas montrer un ballon (ce qui est normal car Explorer ne l'affichera pas de toute façon). Mais je suis d'accord avec ChrisF, mettre un drapeau. –