指定した時間からカウントダウンするタイマーを作成しようとしています。
ユーザーは時間を入力してボタンをクリックします。
ボタンをクリックすると、タイマーを含む 2 番目のフォームが開きます。
タイマーが刻むたびに時間が減り、残り時間がform2のテキスト ボックスtextbox.text = timeLeft
に表示されます ( )。
ただし、テキストボックスが実際に更新されることはありません。空白のままで、プロパティに新しい値を割り当てること.text
が実際に機能するのは、イベントを発生させた場合のみです(たとえば、 textbox.text
のプロパティを変更するボタンをクリックします)
※タイマークラスのコードはこちら
Public Class CountdownTimer
Private timeAtStart As Integer
Private timeLeft As Integer
Public Sub StartTimer(ByVal time As Integer)
timeAtStart = time
timeLeft = timeAtStart
Timer1.Enabled = True
End Sub
Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick
If timeLeft > 0 Then
timeLeft = timeLeft - 1
txtTimeLeft.Text = timeLeft.ToString
Else
Timer1.Stop()
txtTimeRemaining.Text = "Time!"
txtTimeRemaining.ForeColor = Color.Red
End If
End Sub
End Class
そして、これが私がそれを呼び出す方法です:
Dim timer As New CountdownTimer timer.Show() CountdownTimer.StartTimer(CInt(txtSetTime.Text))