Button jede Sekunde blinken lassen, sobald ich einen Typ auswaehle

  • VB.NET

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

    Button jede Sekunde blinken lassen, sobald ich einen Typ auswaehle

    Lieber Forumler,

    ich möchte einen Button blinken lassen mit Visual basic aber es tut leider nicht.
    Mein Ziel ist, sobald ich ein auswahl in meinem ComboxBox menu treffe, das button "TypAktivieren" blinken zu lassen bis ich den Button "TypAktivieren" anklicke.
    ich habe folgendes Code geschrieben aber das Blinken funktioniert nicht richtig.
    Hat jemand eine Idee, was ich hier falsch mache ???
    Danke im Voraus


    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.Stop()
    4. End Sub
    5. Private Sub btnTypAktivieren_Click(sender As System.Object, e As System.EventArgs) Handles btnTypAktivieren.Click
    6. Timer1.Stop()
    7. End Sub
    8. Private Sub cmbTypAuswaehlen_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles cmbTypAuswaehlen.SelectedIndexChanged
    9. if cmbTypAuswaehlen.selectedItem then
    10. Timer1.Start()
    11. End Sub
    12. Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
    13. btnTypAktivieren.Enabled = True
    14. btnTypAktivieren.BackColor = Color.Lime
    15. For i = 0 To 1000
    16. Next
    17. btnTypAktivieren.Enabled = False
    18. btnTypAktivieren.BackColor = Color.Silver
    19. End Sub
    20. End Class
    Es passiert hier ein von zwei möglichen Dingen:
    1. Der Compiler hat die Schleife wegoptimiert, da in der Schleife nichts passiert. => Kein Blinkender Button
    2. Die Schleife wird durchlaufen, jedoch so schnell, dass das Grün innerhalb der 16,66 ms pro Bild (60Hz Monitor) schon wieder in Silber gewechselt wurde. => Kein Blinkender Button

    Wie du siehst, egal was passiert, du hast keinen blinkenden Button.

    Die Lösung ist, deinen Timer dafür zu nutzen. Stelle ihn auf 1000 ms und speichere dir als Klassenvariable (Boolean) den aktuellen Zustand des Buttons.
    Im Timer_Tick Event fragst du nun zunächst den Zustand des Buttons ab, und legst dann entsprechend die Farbe des Buttons fest.
    Dadurch wechselt nun der Button nun jede Sekunde die Farbe.

    VB.NET-Quellcode

    1. Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
    2. ' Intervall 1000 (1sec)
    3. If btnTypAktivieren.BackColor = Color.Lime Then
    4. btnTypAktivieren.BackColor = Color.Silver
    5. Else
    6. btnTypAktivieren.BackColor = Color.Lime
    7. End If
    8. End Sub


    Hilft dir das weiter?
    Visual Basic.NET 8o
    MS-SQL
    8o
    Du kannst der Allgemeinheit, und der betroffenen Person im Besonderen das per einfachen Button-Klick mitteilen. Am unteren rechten Rand jedes Posts gibt es einen Hilfreich Button. Dadurch weiß jeder hier, welcher Beitrag dich besonders voran gebracht hat, auf dem Weg zu deiner Lösung. Darüber hinaus kannst du, wenn du nach oben scrollst zum Titel, rechts neben dem Titel einen kleinen Roten kasten entdecken. Wenn du diesen doppelt anklickst, wird daraus ein grüner Kasten, der den Leuten hier signalisiert, dass das Problem bereits gelöst wurde.

    Und zu guter letzt ist es auch gerne gesehen (Wenn nicht sogar vorgeschrieben) deine Lösung für dein Problem zu posten, sodass andere, die ein ähnliches Problem haben, so schnell eine Lösung parat haben.
    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!