0

I have 3 texbox which will continuously running the random numbers. May I know how to stop the timer after certain time?

Example Timer1 stop after 5 seconds Timer2 stop after 10 seconds TImer2 stop after 15 seconds

Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
            Dim num1 As Integer
            Dim rnd As New Random()

            num1 = rnd.[Next](0, 2)
            TextBox1.Text = Convert.ToString(num1)

        End Sub
    Private Sub Timer2_Tick(sender As Object, e As EventArgs) Handles Timer2.Tick
            Dim num1 As Integer
            Dim rnd As New Random
            num1 = rnd.[Next](1, 9)
            TextBox2.Text = Convert.ToString(num1)
        End Sub

        Private Sub Timer3_Tick(sender As Object, e As EventArgs) Handles Timer3.Tick
            Dim num1 As Integer
            Dim rnd As New Random
            num1 = rnd.[Next](1, 9)
            TextBox3.Text = Convert.ToString(num1)
        End Sub
  Private Sub btnrndpick_Click(sender As Object, e As EventArgs) Handles btnrndpick.Click
        Timer1.Enabled = True
        Timer2.Enabled = True
        Timer3.Enabled = True
        Timer4.Enabled = True
        Timer5.Enabled = True
        btnrndpick.Text = "RUNNING"
    End Sub
pinkfloydx33
  • 11,863
  • 3
  • 46
  • 63
Alex T
  • 3
  • 4
  • Possible duplicate of [C# timer stop after some number of ticks automatically](http://stackoverflow.com/questions/18100524/c-sharp-timer-stop-after-some-number-of-ticks-automatically) – ahmed abdelqader Jan 08 '17 at 10:54

2 Answers2

0

Here is one way to do it with only 1 timer:

Private Rnd As New Random()
Private buttonPressTime As DateTime

Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
    If (DateTime.Now - buttonPressTime) < New TimeSpan(0, 0, 2) Then
        SetTextBoxText(TextBox1, 0, 2)
    End If
    If (DateTime.Now - buttonPressTime) < New TimeSpan(0, 0, 5) Then
        SetTextBoxText(TextBox2, 1, 9)
    End If
    If (DateTime.Now - buttonPressTime) < New TimeSpan(0, 0, 15) Then
        SetTextBoxText(TextBox3, 1, 9)
    Else
        Timer1.Stop()
    End If
End Sub

Private Sub SetTextBoxText(ByVal TextBox As TextBox, ByVal LowerBound As Integer, ByVal UpperBound As Integer)
    TextBox.Text = Rnd.[Next](LowerBound, UpperBound).ToString()
End Sub

Private Sub btnrndpick_Click(sender As Object, e As EventArgs) Handles btnrndpick.Click
    Timer1.Enabled = True
    buttonPressTime = DateTime.Now
    btnrndpick.Text = "RUNNING"
End Sub
Zohar Peled
  • 79,642
  • 10
  • 69
  • 121
0

Have you tried using an integer variable? Something like

Dim number as integer = 0

Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick number += 1 If number = 5 Then 'For example. But you need to adjust the tick property. Timer1.Stop End Sub

TGamer
  • 529
  • 1
  • 9
  • 26