Button mit Timer deaktivieren und wieder aktivieren

  • VB.NET

Es gibt 22 Antworten in diesem Thema. Der letzte Beitrag () ist von Dancger.

    Button mit Timer deaktivieren und wieder aktivieren

    Hallo,

    wie ist der Code den Button1 bei Programmstart für 10 Sekunden zu deaktivieren und ihn nach diesen 10 Sekunden wieder zu aktivieren? Und wenn man Button 1 gedrückt hat soll er wieder für 10 Sekunden disabled sein. Ich finde den Code nicht raus...

    Wenn möglich mit Timer arbeiten... so habe ich es probiert.

    LG
    Naja. Einen Timer brauche ich nicht. Wäre für mich nur logisch das es so geht. Ich möchte halt das ein Button bei Programmstart disabled wird und nach 10 Sekunden wieder enabled. Wenn dieser aktivierte Knopf dann gedürckt wird er wieder für 10 Sekunden deaktiviert wird und sich anschließend aktiviert.
    Ich will nur ein bisschen ausprobieren. Momentan will ich das ich jede 10 Sekunden eine Email versenden kann. Halt um auf diesen Knopf zu drücken. Bisschen kompliziert. Möchte es einfach können. :) Wofür ist doch auch völlig egal.^^

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    3. Timer1.Interval = 10000
    4. End Sub
    5. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    6. Button1.Enabled = True
    7. Timer1.Stop()
    8. End Sub
    9. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    10. Timer1.Start()
    11. Button1.Enabled = False
    12. End Sub
    13. End Class


    Der Button kann nur alle 10 Sekunden gedrückt werden.

    Ich hoffe ich konnte dir helfen.
    Bitte keine VB-Fragen üb... Ach scheiß drauf, mich fragt ja eh keiner.

    PrivateLoader schrieb:

    Ja! Hat prima geholfen! Aber damit man das nicht umgehen kann sollte der Button am Anfang wenn man das Programm startet auch noch einen Timer haben. Das hat er nicht. Weißt du auch wie das geht?


    Das kann man nicht umgehen..
    Wirklich verstanden habe ich das jedoch auch nicht wirklich.

    Warum soll beim Programmstart ein Timer starten?

    @StormySunshine
    Ich denke nicht das er das meint da der Button dann total unnütz wäre.
    Bitte keine VB-Fragen üb... Ach scheiß drauf, mich fragt ja eh keiner.
    Hmm, wieso kann man das nicht umgehen? Es muss doch einen Befehl geben, der den Button bei Programmstart für 10 Sekunden disabled. Sonst kann man ja die Email senden, Programm schließen, Programm öffnen <= 10 Sekunden Zeit erspart.

    Das soll einfach als kleine Sperre dienen um nicht so viele Emails versenden zu können, da sonst kommt: Postfach nicht verfügbar und ich muss ca. 10 Stunden warten bis ich wieder etwas versenden / empfangen kann.
    Okay tut mir leid aber das ist eine Arbeit von nicht einmal 1 Minute das ab zu ändern,
    das hättest du bestimmt auch alleine geschafft :S

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    3. Timer1.Interval = 10000
    4. Timer1.Start()
    5. Button1.Enabled = False
    6. End Sub
    7. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    8. Button1.Enabled = True
    9. Timer1.Stop()
    10. End Sub
    11. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    12. Timer1.Start()
    13. Button1.Enabled = False
    14. End Sub
    15. End Class


    Du musst einfach die Aktion die in Button1_Click abläuft in die Sub Form1_Load übertragen.

    @StormySunshine
    Totaler Quatsch, was will er mit FormClosing wenn er will das der Button beim Starten deaktiviert wird.
    Bitte keine VB-Fragen üb... Ach scheiß drauf, mich fragt ja eh keiner.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „require“ ()

    @require

    PrivateLoader schrieb:

    Sonst kann man ja die Email senden, Programm schließen, Programm öffnen <= 10 Sekunden Zeit erspart.
    Es gibt mehrere Möglichkeiten. Dabei ist es nicht Quatsch, es im FormClosing zu prüfen. :)
    Natürlich kann man auch Enabled = False im FormLoad festlegen....

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „StormySunshine“ ()

    Juhu!!! Ich habe es! Danke dir! Genau das habe ich gesucht. :) Aber jetzt fehlt mir nur noch eins. Das sich der Text bei dem Button der Text sich bei dem "Cooldown" bei jeder Sekunde ändert. Also quasi der Button der ja jetzt "Senden!" heißt sich bei 10 Sekunden warten in "Senden! (Bitte warten, bereit in 10), bei 9 Sekunden halt in "Senden! (Bitte warten, bereit in 9), und so weiter. Wenn der Button wieder enabled ist das er wieder "Senden!" heißt. Ich hoffe es war verständlich. Ich probiere mich nochmal aus... ^^ Wird aber bestimmt schwerer als ich es mir gerade denke. :/

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    3. Timer1.Interval = 10000
    4. Timer2.Interval = 1000
    5. Button1.Text = "10"
    6. Timer2.Start()
    7. Timer1.Start()
    8. Button1.Enabled = False
    9. End Sub
    10. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    11. Button1.Enabled = True
    12. Timer1.Stop()
    13. End Sub
    14. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    15. Timer1.Start()
    16. Timer2.Start()
    17. Button1.Enabled = False
    18. End Sub
    19. Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
    20. Button1.Text -= 1
    21. If Button1.Text = "0" Then
    22. Button1.Text = "done"
    23. Timer2.Stop()
    24. End If
    25. End Sub
    26. End Class


    Insgesamt war das eine Arbeit von 3 Minuten.
    Ich hoffe ich konnte dir dennoch helfen.
    Bitte keine VB-Fragen üb... Ach scheiß drauf, mich fragt ja eh keiner.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „require“ ()