BalloonTip während der Me.Hide Funktion

  • VB.NET

Es gibt 36 Antworten in diesem Thema. Der letzte Beitrag () ist von Nofear23m.

    mxrxtzzzz schrieb:

    Ich habe jetzt den Code der so ausschaut

    Bin ich der einzige den der code stört?

    Warum um Gottes willen habe ich datenow vom Typ Date um dann ein Date mit Cstr(Now) in einen String zu wandlen und der Compiler muss es WIEDER umwandeln in ein Date? :thumbdown:
    Selbes hier:CStr("06.06.2019 21:29") Warum wandle ich explizit einen String in ein String. Geil. Wenn dann versuche es doch in ein Date zu Casten?

    VB.NET-Quellcode

    1. Dim datenow As Date = DateTime.Now
    2. If datenow = New Date(2019, 6, 6, 21, 29, 0) And NotifyIcon1.Visible = True Then
    3. NotifyIcon1.BalloonTipText = "Zeit zum Lotto spielen !!"
    4. NotifyIcon1.Visible = True
    5. NotifyIcon1.BalloonTipTitle = "Lotto"
    6. NotifyIcon1.ShowBalloonTip(1000)
    7. End If


    Bitte @mxrxtzzzz mache mal endlich Option Strict On

    Achja, If datenow = New Date(2019, 6, 6, 21, 29, 0) And NotifyIcon1.Visible = True Then ergibt im Grunde ja null sinn oder?

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    Nofear23m schrieb:

    Bin ich der einzige den der code stört?
    Nein, aber ich will mir nicht den Mund fusselig reden.
    Solange der TE keine Details herausrückt, halte ich mich besser zurück.

    Nofear23m schrieb:

    If datenow = New Date(2019, 6, 6, 21, 29, 0) And NotifyIcon1.Visible = True Then ergibt im Grunde ja null sinn
    Vielleicht trifft er ja genau die Sekunde, in der die Bedingung zutrifft. ;)
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    Das hat doch gar nichts mehr mit dem Eigentlichen Thema zu tun !
    Und außerdem könntest du mal auf die ganzen Einwände (Option Strict ON, et cetera) eingehen !

    Ich habe es schon geahnt, als dieser Thread das Licht der Welt erblickte, daß es zäh und kaotisch wird. :rolleyes:

    mxrxtzzzz schrieb:

    Wenn das Programm im Hintergrund läuft also bei Me.Hide und wenn das Notifyicon unten sichtbar ist
    Und sobald du Me.Hide aufrufst, willst du den BalloonTip sehen?
    Das glaube ich nicht.

    Du benötigst ein Event, das genau dann zuschlägt, wenn du den BalloonTip sehen willst.
    Das könnte beispielsweise ein Timer sein, der jede Minute prüft, ob der Zeitpunkt zum Anzeigen schon erreicht ist.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    Ja genau das !!!
    Ud wie würde das aussehen und in welchen Sub würde es gehöhren?
    Vielleicht in den Form1.load ?!
    Ich habe auch irendwas von der Methode thread.sleep(1000) gehört

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „mxrxtzzzz“ ()

    mxrxtzzzz schrieb:

    Ich habe auch irendwas von der Methode thread.sleep(1000) gehört
    Was hast du den darüber gehört?
    Und wie würdest du sie anwenden?

    mxrxtzzzz schrieb:

    Vielleicht in den Form1.load ?
    Da gehören höchstens Initialisierungsroutinen rein.
    Und wenn sie nicht zur Anzeige der Form dringend benötigt werden, dann auch da nicht.
    Den Rest könnte man in Form1.Shown unterbringen.

    Aber du willst doch den Timer erst dann starten, wo du Me.Hide aufrufst.
    Wo ist denn das?
    Zeig mal deinen Code, sonst spekulieren wir hier nur rum.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    Also wenn es leichter fällt kann der Timer während der ganzen Zeit laufen
    Welchen Code meinst du? Den ich ausführen will?

    VB.NET-Quellcode

    1. Dim datenow As Date
    2. If datenow = CStr("06.06.2019 21:29") Then
    3. NotifyIcon1.BalloonTipText = "Zeit zum Lotto spielen !!"
    4. NotifyIcon1.Visible = True
    5. NotifyIcon1.BalloonTipTitle = "Lotto"
    6. NotifyIcon1.ShowBalloonTip(1000)
    7. End If


    *Unnötiges Zitat entfernt - Bitte lass das und zitiere nur wenn dies sinnvoll ist. Danke* ~NoFear23m

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Nofear23m“ ()

    mxrxtzzzz schrieb:

    Welchen Code meinst du?
    Ich habe doch keine Ahnung, wie dein Programmablauf aussieht.
    Wo rufst du Me.Hide auf?

    Wenn du den Timer die ganze Zeit laufen lassen willst, dann zieh dir einen aus der Toolbox und starte ihn in Form1.Shown.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --

    VB.NET-Quellcode

    1. Private Sub Form1_Closing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
    2. If MessageBox.Show("Anwendung wird Geschlossen", "Lotto", MessageBoxButtons.OK) = Windows.Forms.DialogResult.OK Then
    3. Me.Hide()
    4. NotifyIcon1.Visible = True
    5. e.Cancel = True
    6. End If
    7. End Sub

    Dann starte hier auch deinen Timer.
    Und in die Timer-Event-Routine packst du den Code von oben, der den BalloonTip anzeigt.

    Du kannst den Timer entweder aus der Toolbox ziehen oder selbst erzeugen,
    wie es hier gemacht wird:
    docs.microsoft.com/de-de/dotne…mer?view=netframework-4.8
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --

    VB.NET-Quellcode

    1. Private Sub Form1_Closing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
    2. If MessageBox.Show("Anwendung wird Geschlossen", "Lotto", MessageBoxButtons.OK) = Windows.Forms.DialogResult.OK Then
    3. Me.Hide()
    4. NotifyIcon1.Visible = True
    5. e.Cancel = True
    6. tmrBalloonTip.Start()
    7. End If
    8. Dim datenow As Date
    9. If datenow = CStr("06.06.2019 21:43") Then
    10. NotifyIcon1.BalloonTipText = "Zeit zum Lotto spielen !!"
    11. NotifyIcon1.Visible = True
    12. NotifyIcon1.BalloonTipTitle = "Lotto"
    13. NotifyIcon1.ShowBalloonTip(1000)
    14. End If
    15. End Sub

    Und jetzt?

    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „mxrxtzzzz“ ()

    Nofear23m schrieb:

    Warum um Gottes willen habe ich datenow vom Typ Date um dann ein Date mit Cstr(Now) in einen String zu wandlen und der Compiler muss es WIEDER umwandeln in ein Date?
    Selbes hier:CStr("06.06.2019 21:29") Warum wandle ich explizit einen String in ein String. Geil. Wenn dann versuche es doch in ein Date zu Casten?


    Nofear23m schrieb:

    Achja, If datenow = New Date(2019, 6, 6, 21, 29, 0) And NotifyIcon1.Visible = True Then ergibt im Grunde ja null sinn oder?


    petaod schrieb:

    Du benötigst ein Event, das genau dann zuschlägt, wenn du den BalloonTip sehen willst.


    petaod schrieb:

    Und in die Timer-Event-Routine packst du den Code von oben, der den BalloonTip anzeigt.


    Interessiert dich alles nicht, oder was !
    Wenn du weiterhin so eine ignorante Lernresistenz an den Tag legs, wird die Hilfsbereitschaft, auch bei den Tollerantesten hier, bald abnehmen !
    Wenn du wirklich was lernen willst, dann konzentriere dich geälligst auf das Thema, lese aufmerksam die Antworten und befolge sie auch !
    Wenn was unklar ist, stelle KONKRETE Fragen, soetwas wie "Ich hätte es gerne so und so, wie geht das", oder "funktionier nicht", ist nicht zielführend !
    Wenn etwas nicht funtioniert, eine KONKRETE Fehlermeldung, inclusive Zeile und eine möglichst genaue Beschreibung angeben !
    Es mögen harte Worte sein, die @FormFollowsFunction verwendet, aber du solltest sie beherzigen, wenn du nicht auf die Ignorierliste der geduldigen Forumsbenutzer kommen willst.

    Wenn du nicht weißt, wie ein Timer funktioniert:
    docs.microsoft.com/de-de/dotne…s-with-wf-timer-component
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    Hallo @mxrxtzzzz

    Das ist normalerweise nicht meine Art aber du ziehst dir echt so einiges an unmut zu. Das hier ist eine Community welche gerne Hilft wenn man mal nicht weiter weis. Die Grundlagen solltest du dir aber schon selbst beibringen.
    Dazu gehört auch das man mal auch eine Suchmaschine verwendet. Ich nehme an bei dir ist nicht nur vb.paradise als Webadresse freigeschaltet. Du darfst also sicher auch Google verwenden oder?

    Das schau doch mal wie man das anstellt das man Code beim Timer-Tick ausführt. Wichtig hierbei - den Code den man findet auch verstehen versuchen. Ansonsten hast du ja gleich weitere Stichworte für die Suchmaschine deiner Wahl oder? Du musst schon ein wenig "mitarbeiten", sonst bekommst du hier keine Hilfe mehr weil die Leute dann einfach nicht mehr wollen. Vergiss bitte nicht das hier alle freiwillig in Ihrer Freizeit versuchen zu Helfen.

    Und du kannst dir sicher denken das der ein oder andere früher oder später denkt: Das hat keinen Sinn, dafür ist mir meine Zeit zu schade.

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##