Timer erst auslösen wenn Felder ausgefüllt

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Timer erst auslösen wenn Felder ausgefüllt

    Hey folgendes Problem. Ich hab eine Form erstellt (unten der Code). Mein Problem ist wenn jetzt jemand auf Login clickt wird ja schön gesagt der Username ist Falsch und das Passwort. Mein Problem ist der Timer startet dennoch nach 5 Sekunden wenn die obigen 2 Meldungen weg sind. Wie mache ich das der Timer nur gestartet wird wenn die Daten ausgefüllt sind und ich auf Login clicke?

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    3. If TextBox1.Text = "" Then
    4. MsgBox("Please insert your Username")
    5. If TextBox2.Text = "" Then
    6. MsgBox("Please insert your Password")
    7. End If
    8. End If
    9. Timer1.Interval = 5 * 1000 ' 5 Sec
    10. Timer1.Start()
    11. End Sub
    12. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    13. MsgBox("Login Successful")
    14. Timer1.Stop()
    15. End Sub
    16. Private Sub TextBox8_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox8.TextChanged
    17. End Sub
    18. End Class
    Machs so:

    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. If TextBox1.Text = "" Then
    3. MsgBox("Please insert your Username")
    4. Else 'Wenn der Text in der Textbox1 größer ist als "", dann wird überprüft ob der text in der Textbox2 aus größer ist als ""
    5. If TextBox2.Text = "" Then
    6. MsgBox("Please insert your Password")
    7. Else ' Wenn der Text in der Textbox2 größer ist als "", wird der Timer gestartet
    8. Timer1.Interval = 5000 ' 5 Sec
    9. Timer1.Start()
    10. End If
    11. End If
    12. End Sub



    Ich hoffe ich konnte helfen ^^

    Domkonit schrieb:

    Mein Problem ist der Timer startet dennoch nach 5 Sekunden wenn die obigen 2 Meldungen weg sind.
    Dein Problem ist offensichtlich, dass Du Dir die Wirkungsweise und Möglichkeiten von If-Konstrukten noch nicht ganz reingezogen hast.
    Spoiler anzeigen

    VB.NET-Quellcode

    1. If bla Then
    2. ' Bla 1
    3. End If
    4. ' oder
    5. If bla Then
    6. ' Bla 1
    7. Else
    8. ' Bla 2
    9. End If
    10. ' oder
    11. If bla Then
    12. ' Bla 1
    13. ElseIf blabla Then
    14. ' Bla 2
    15. ElseIf blablabla Then
    16. ' Bla 3
    17. Else
    18. ' Bla 4
    19. End If
    Ähnliche Möglichkeiten hast Du auch bei
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Select Case bla
    2. Case bla1
    3. ' Bla 1
    4. Case bla2
    5. ' Bla 2
    6. Case Else
    7. ' Bla 3
    8. End Select
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Mein Gedanke ist gerade, dass du ja eigentlich nur versuchst den User 5 Sekunden lang, nachdem er irgendetwas eingetragen hat, warten lässt?
    Warum will man sowas erreichen? Ich persönlich bevorzuge eher flotte Programme als welche die mich ohne ersichtlichen Grund warten lassen.

    lg
    ScheduleLib 0.0.1.0
    Kleine Lib zum Anlaufen von Code zu bestimmten Zeiten

    fichz schrieb:

    als welche die mich ohne ersichtlichen Grund warten lassen.
    Genau.
    Insbesondere dann, wenn die MessageBox versehentlich hinter dem FireFox gelandet ist und die 5 Sekunden noch nicht begonnen haben. :D
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!