NotifyIcon Balloontip Visible

  • VB.NET

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von Sederic Enders.

    NotifyIcon Balloontip Visible

    Hi,
    Wie kann man rausfinden, ob der BalloonTip eines Notify-Icons sichtbar ist bzw. angezeigt wird? Oder gibt es eine Möglichkeit, sicherzugehen, dass alle Meldungen für eine gewisse Zeit angezeigt werden, oder zumindest die mit Fehler-Icon?
    Danke :)
    Du kannst in der ShowBalloonTip-Methode eine Anzeigedauer mitgeben.
    Aber:
    Der minimale und maximale Timeoutwert (10 bzw. 30 Sekunden) werden vom Betriebssystem erzwungen und liegen normalerweise zwischen 10 und 30 Sekunden.
    Dieser kann je nach Betriebssystem unterschiedlich ausfallen.
    Zu hohe bzw. niedrige Timeoutwerte werden auf den entsprechenden maximalen bzw. minimalen Wert korrigiert.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    aso, aber mein ding ist, dass ich nacheinander Tips einblenden will, aber jeder eine bestimmte dauer angezeigt werden soll, also der nächste wartet bis der vorherige ausgeblendet ist... Ok ich könnte des mit Timer und selber viel rumbasteln machen, aber des is mir etz zu aufwendig. Gibts da nix dafür?

    enIking1998 schrieb:


    Mein Tipp:

    Scrolle rüber zum Objektkatalog und siehe Dir die angebotenen Element-Eigenschaften an...
    Siehe, [Allgemein] VisualStudio richtig nutzen (Google ist nicht deine Mami) (Thread eröffnet von @ErfinderDesRades)...

    Mfg.eniking1998


    ♥-lichen Dank für den wertvollen Beitrag.
    Ich kann dich verstehen, dass man das meiste in diesem Forum googeln könnte und vllt dieses Thema auch. Aber vllt hab ich mich schon informiert und auch mich mit dem Control beschäftigt. Vllt liegt auch die Lösung auf der Hand, aber meinst du nicht, dass wenn ich nicht auf den Schlauch stünde, dass ich dann trotzdem diese Frage gestellt hätte? Mich regen diese Leute auf, die so tun als ob die Antwort sooooo leicht ist, aber sich zu gut sind, sich mal 2 Minuten Zeit zu nehmen und ihre Lösung der Allgemeinheit preiszugeben. Statt dessen verweisen Sie auf Seiten wie Google, oder auf Videos, wo die IDE von Visual Studio für Dummies erklärt werden (auch wenn das Video wirklich gut ist). Ganz ehrlich, ich komm mir verarscht vor...

    MFG Sederic Enders

    Ist nicht böse gemeint, aber ich bin auf der Suche nach der Lösung und nicht nach schlauen Kommentaren. ;)
    Wirklich?

    Ich weise Dich nur darauf hin, sich erst die Mühe zu machen, es selbst herauszufinden, und dann zu Fragen, wenn keine Lösung resultiert...
    Und als Kompromiss kannst Du den Objektkatalog wählen...

    Dieses kann jenesmal nützlich sein...

    Mfg.eniking1998
    Und ich wollte ausdrücken, dass ich das gemacht habe und tdm nicht schlau wurde.
    Vllt hast du mich auch falsch verstanden, weil mein Prob ist nicht, dass ich nur ein Balloon für ne best. Dauer anzeigen möchte, sondern, dass jede Sprechblase für ne gewisse Zeit angezeigt wird, auch wenn - extrem ausgedrückt - das hier dortsteht:

    VB.NET-Quellcode

    1. Me.NotifyIcon.ShowBalloonTip(1000, My.Application.Info.ProductName, "Blabla", ToolTipIcon.Info)
    2. Me.NotifyIcon.ShowBalloonTip(1000, My.Application.Info.ProductName, "Willkommen", ToolTipIcon.Info)
    So evtl.:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Dim Index As Integer
    3. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    4. NotifyIcon1.Visible = True
    5. NotifyIcon1.ShowBalloonTip(1000, "Test", "This is a small test.", ToolTipIcon.Info)
    6. Index = 0
    7. End Sub
    8. Private Sub NotifyIcon1_BalloonTipClosed(sender As Object, e As EventArgs) Handles NotifyIcon1.BalloonTipClosed
    9. Index = Index + 1
    10. ShowTip(Index)
    11. End Sub
    12. Sub ShowTip(ByVal BallonTipIndex As Integer)
    13. Select Case BallonTipIndex
    14. Case 1
    15. NotifyIcon1.ShowBalloonTip(1000, "Test1", "This is a small test.", ToolTipIcon.Info)
    16. Case 2
    17. NotifyIcon1.ShowBalloonTip(1000, "Test2", "This is a small test.", ToolTipIcon.Info)
    18. Case 3
    19. NotifyIcon1.ShowBalloonTip(1000, "Test3", "This is a small test.", ToolTipIcon.Info)
    20. Case 4
    21. NotifyIcon1.ShowBalloonTip(1000, "Test4", "This is a small test.", ToolTipIcon.Info)
    22. End Select
    23. End Sub
    24. End Class


    ???
    Ich hab übrgs das hier gebastelt und das taugt mir :D

    VB.NET-Quellcode

    1. Public Class BalloonTipHandler
    2. Private WithEvents CounterTimer As New Timer With {.Enabled = False}
    3. Dim ParentNotifyIcon As NotifyIcon
    4. Dim MessageList As New List(Of BalloonTipMessage)
    5. Public Sub New(TargetNotifyIcon As NotifyIcon)
    6. Me.ParentNotifyIcon = TargetNotifyIcon
    7. End Sub
    8. Public Sub ShowMessage(ByVal Message As String, Optional ByVal State As ToolTipIcon = ToolTipIcon.Info, Optional ByVal DisplayDuration As Integer = 10000)
    9. ShowMessage(New BalloonTipMessage With {.Message = Message, .State = State, .DisplayDuration = DisplayDuration})
    10. End Sub
    11. Public Sub ShowMessage(ByVal BalloonMessage As BalloonTipMessage)
    12. Me.MessageList.Add(BalloonMessage)
    13. If Not CounterTimer.Enabled Then CounterTimer.Interval = 5
    14. CounterTimer.Start()
    15. End Sub
    16. Private Sub CounterTimer_Tick(sender As Object, e As EventArgs) Handles CounterTimer.Tick
    17. If MessageList.Count = 0 Then
    18. CounterTimer.Stop()
    19. Else
    20. CounterTimer.Interval = MessageList(0).DisplayDuration
    21. DisplayBalloonMessage(MessageList(0))
    22. MessageList.RemoveAt(0)
    23. End If
    24. End Sub
    25. Private Sub DisplayBalloonMessage(ByVal BalloonMessage As BalloonTipMessage)
    26. With BalloonMessage
    27. ParentNotifyIcon.ShowBalloonTip(.DisplayDuration, My.Application.Info.ProductName, .Message, .State)
    28. End With
    29. End Sub
    30. Public Structure BalloonTipMessage
    31. Dim Message As String
    32. Dim State As ToolTipIcon
    33. Dim DisplayDuration As Integer
    34. End Structure
    35. End Class