Button mit Timer deaktivieren und wieder aktivieren

  • VB.NET

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

    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. Button1.Text = 10
    16. Timer1.Start()
    17. Timer2.Start()
    18. Button1.Enabled = False
    19. End Sub
    20. Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
    21. Button1.Text -= 1
    22. If Button1.Text = 0 Then
    23. Button1.Text = "done"
    24. Timer2.Stop()
    25. End If
    26. End Sub
    27. End Class


    Nun ist aber alles so wie es sein soll :)
    Selbst getestet, mehrfach wiederholbar, wie gewünscht.

    Viel Spaß
    Bitte keine VB-Fragen üb... Ach scheiß drauf, mich fragt ja eh keiner.
    @require: War das eben zu früh / zu spät für Dich oder hast Du tatsächlich noch nix von Option Strict On gehört?
    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!

    RodFromGermany schrieb:

    noch nix von Option Strict On

    Hatte nich EDR oder so nen Link in der Signatur, welche Strict On erklärt? *such*

    @require
    - Unsauber programmiert
    - Wieso 2 Timer? Der Timer mit dem niedrigsten Interval reicht vollkommen aus. Da braucht's nur ein bisschen mehr Logik.

    @TE
    Übernimm diesen Code, weil:
    - saubere Trennung von Text und Zahl
    - Nur ein Timer (Viele Timer belasten den Computer nur unnötig)

    Code:

    VB.NET-Quellcode

    1. Option Strict On
    2. Public Class Form1
    3. 'Variablen
    4. Private Counter As Integer = 10
    5. Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    6. 'Button deaktivieren
    7. Button1.Enabled = False
    8. 'Timer Interval setzen (1 Sekunde) und starten
    9. Timer1.Interval = 1000
    10. Timer1.Start()
    11. End Sub
    12. Private Sub Timer1_Tick(sender As Object, e As System.EventArgs) Handles Timer1.Tick
    13. 'Runterzählen, wenn nicht 0, ansonsten Button aktivieren und Text ändern
    14. If Not Counter = 0 Then
    15. Counter -= 1
    16. Button1.Text = "Bitte warten (" & Counter.ToString & ")"
    17. Else
    18. Button1.Enabled = True
    19. Button1.Text = "Mach etwas"
    20. End If
    21. End Sub
    22. Private Sub Button1_Click(sender As Object, e As System.EventArgs) Handles Button1.Click
    23. 'Button deaktivieren
    24. Button1.Enabled = False
    25. 'Hier kommt dein Code hin
    26. MessageBox.Show("Welcher Lauch hat den Button gedrückt?")
    27. 'Counter zurücksetzen - ggf. Button Text ändern
    28. Button1.Text = "Bitte warten (10)"
    29. Counter = 10
    30. End Sub
    31. End Class


    Bemerkung: Wieso hat der VB Tag so Probleme beim "richtigen" highlighten...?!?

    Greez Dancger
    MESS WITH THE BEST, DIE LIKE THE REST! :evil:
    n'paar Links: DNS Tools, Steal WA DB, Droidsheep...

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Dancger“ () aus folgendem Grund: Rechtschreibung FTW!