VB.NET Timer-Instanzen unterbrechen

devencer

Grünschnabel
Hi

Ich bin noch Anfänger in VB.NET. Habe zwar ca. zwei Drittel des Open Books von Galileo Computing durchgelesen. Vieles habe ich verstanden, vieles auch (noch) nicht.

Beim Versuch ein einfach Programm zu entwickeln stehe ich nun vor folgemdem Problem:
Ich möchte ein kleines GUI mit verschiedenen Buttons entwickeln. Wenn auf einen der Buttons geklickt wird, öffnet sich ein weiteres Fenster, in welchem die Anzahl Sekunden gezählt wird. Soweit kein Problem. Eine statische Variable zum zählen der Objekte habe ich ebenfalls implentiert. Frage: Ich stelle mir vor, dass immer nur in der zuletzt erstellten Instanz gezählt wird, d.h. bei allen anderen Instanzen soll der Timer gestoppt werden. Wenn die zuletzt erstellte Instanz geschlossen wird, soll bei der nächst "tieferen" Instanz weitergezählt werden. Wie realisiere ich sowas?

Code Form1:
Code:
Public Class Form1

    Public Shared zähler As New ArrayList

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        If zähler.Count > 0 Then
            Dim i As Integer = 0
            For i = 0 To zähler.Count
                ' Code?
                '
                '
                '
                '
                '
                '
            Next
        End If

        Dim obj As New Form2
        zähler.Add(Me)
        obj.Show()
    End Sub

End Class

Code Form2:
Code:
Public Class Form2

    Dim counter As Integer

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Timer1.Start()
        TextBox1.Text = 0
    End Sub

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        counter = counter + 1
        TextBox1.Text = counter
    End Sub

End Class

Es handelt sich nicht um das eigentliche Programm. Habe kurz ein Projekt erstellt, das nur den relevanten Code enthält...

Würde mich sehr freuen, wenn jemand einem blutigen Anfänger etwas auf die Sprünge helfen könnte :)

Gruss
devencer
 

Anhänge

  • Counter.zip
    87 KB · Aufrufe: 14
Zuletzt bearbeitet:
Hi

Habe eine Lösung gefunden und möchte diese noch mitteilen, bevor ich das Thema schliesse. Vielleicht hilfts ja irgendwann einem Anfänger, und wenn nicht ists auch egal ;)

Wenn man verschiedene Instanzen über ein Array verwaltet, kann nicht direkt eine Methode augerufen werden, z.B.

Code:
arr.item(i).timer1.stop()

Es muss eine separate Methode geschrieben werden, d.h.

Code:
arr.item(i).TimerStop()

Public Sub TimerStop()
 Timer1.Stop()
End Sub

Gruss
devencer
 

Neue Beiträge

Zurück