Mit Timer Tick Panel wählen

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Wüschd.

    Mit Timer Tick Panel wählen

    Hallo,
    ich habe ein Problem. Ich habe 15 Panels die sich jede Sekunde in der Höhe ändern sollen. Also in der ersten Sekunde ändert sich Panel1 in der Höhe in der 2 Panel2. Ich packe es jede Sekunde ein Panel zu ändern z.B. Panel1 ändert sich je nach Wert jede Sekunde. Doch weiß ich nicht wie ich den Wechsel der Panels bei jeder neuen Sekunde anzeige.
    Danke im Vorraus
    genau so habe ich es vor, doch wie. Meine erste Idee wäre gewesen mit Panelx und das x ist der Zähler aber dies ging nicht. Und jetzt hab ich es mit If ausprobiert doch dies gibt ein riesiger block hat nicht noch jemand eine kürzere Lösung?
    Am einfachsten geht es wenn Du im Programm die Panels selber dynamisch erzeugst und gleich in einer Liste abspeicherst. Aber Du scheinst die ja schon fest auf der Form gezeichnet zu haben, also musst Du sie per Programm in eine Liste packen:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Dim PanelList As New List(Of Panel)
    3. Dim index As Integer = -1
    4. Dim WithEvents tim As New Timer
    5. ' form load
    6. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    7. ' Liste der verwendeten Panels erstellen
    8. For Each c As Control In Me.Controls
    9. If TypeOf (c) Is Panel Then PanelList.Add(CType(c, Panel))
    10. Next
    11. End Sub
    12. Private Sub btnStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnStart.Click
    13. ' timer ein/ausschalten
    14. tim.Interval = 1000
    15. tim.Enabled = Not tim.Enabled
    16. End Sub
    17. ' timer event
    18. Sub tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles tim.Tick
    19. ' index erhöhen
    20. index = (index + 1) Mod PanelList.Count
    21. ' panel(index) position verändern
    22. PanelList.Item(index).Top -= 5
    23. End Sub
    24. End Class