Frage

Ich habe eine Anwendung, die eine NotifyIcon im Fach verwendet zu verstecken / die Anwendung wiederherzustellen, sowie Pop Mitteilungen an den Benutzer von Anwendungsereignisse auf. Meine Anwendung hat eine Benachrichtigungswarteschlange, und ich verwende das NotificationIcon.BalloonTipClosed Ereignis zu bestimmen, wann der Ballon zurückgesetzt und die nächste Benachrichtigung zeigen (wenn es einen in der Warteschlange ist).

Diese Methode scheint in beiden üblichen Ursachen sehr gut zu funktionieren (Benutzer der Ballon selbst läßt schließen, wenn es mal aus, und Benutzer klickt auf „X“ in Ballon es zu zwingen, zu schließen), aber es gibt einen dritten Fall, in dem BalloonTipClosed nicht erhalten genannt:

  1. Benachrichtigung Ballon erscheint
  2. Während es sichtbar ist, Benutzer mit dem rechten Klicks auf Benachrichtigungssymbol Kontextmenü aufzurufen, um den Ballon zu verursachen, verschwinden

Die BalloonTipClosed Veranstaltung erhält nicht in diesem Fall ausgelöst - ich meine, es ist ein Fehler im Rahmen (I 2.0 bin mit), aber jemand eine Idee hat, um dieses? Wenn ich nicht dieses Ereignis bekommen, immer meine Anwendung denkt, es gibt einen Ballon sichtbar (Ich habe einen boolean, dass es von der Anzeige mehrerer Ballons auf einmal verhindert), und es wird nie wieder ein anderes Symbol zeigen, solange es läuft.

War es hilfreich?

Lösung 3

Hier ist, was ich am Ende tun, obwohl ich wie diese Lösung nicht besonders machen. Ich habe einen zweiten Zeitgeber auf die Form und setzte es für 10 Sekunden. Wenn eine Benachrichtigung erscheint (wenn ich einen Pop), beginne ich den Timer, und dann in BalloonTipClosed ich es stoppen. Wenn der Timer tickt (was bedeutet, dass BalloonTipClosed noch nicht abgelaufen ist), zeige ich die nächste Spitze manuell.

Das Ergebnis ist, dass, wenn es noch nicht gezündet hat, ich kümmern sich um sie. Aber ich bin zu besseren Lösungen offen, wenn jemand eine hat.

Andere Tipps

Das gehört als Kommentar zu Aarons Antwort, aber ich bin nicht kommentieren noch erlaubt.

Wenn Sie die BalloonTipClicked und Mouseclick Ereignisse auf dem NotifyIcon behandeln (sowie die BalloonTipClosed), dann können Sie alle fangen die Möglichkeiten der Ballon schließen kann. Das einzige, was Sie sich bewusst sein, dass mehrere scenerios mehr Ereignisse auslösen, so sicher sein, um diese zu codieren (so etwas wie isClosed = true, und dann, dass zurückgesetzt, wenn ein neuer Ballon wird angezeigt).

Im Ereignishandler für das BalloonTipClicked Ereignis, würde ich überprüfen, um zu sehen, ob die rechte Maustaste geklickt wurde, und wenn es die boolean auf false gesetzt wurde.

Ich denke, diesen Beitrag von Raymond Chen über Ballon-Benachrichtigungen Ihnen helfen kann: http://blogs.msdn.com/oldnewthing/archive/ 2009/05/04 / 9585032.aspx

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top