Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 我有一个倒计时计时器,我希望它从一个变量中设置的数字开始_Vb.net - Fatal编程技术网

Vb.net 我有一个倒计时计时器,我希望它从一个变量中设置的数字开始

Vb.net 我有一个倒计时计时器,我希望它从一个变量中设置的数字开始,vb.net,Vb.net,我有一个倒计时计时器,我希望它从变量中给定的值开始倒计时 Public Class frmSinglePlayer Private TargetDT As DateTime Private CountDownFrom As TimeSpan = TimeSpan.FromMinutes(3) Private Sub frmSinglePlayer_Load(sender As System.Object, e As System.EventArgs) Handles

我有一个倒计时计时器,我希望它从变量中给定的值开始倒计时

Public Class frmSinglePlayer

    Private TargetDT As DateTime
    Private CountDownFrom As TimeSpan = TimeSpan.FromMinutes(3)

    Private Sub frmSinglePlayer_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        tmrCountdown.Interval = 500
        TargetDT = DateTime.Now.Add(CountDownFrom)
        tmrCountdown.Start()
    End Sub

    Private Sub tmrCountdown_Tick(sender As Object, e As System.EventArgs) Handles tmrCountdown.Tick
        Dim ts As TimeSpan = TargetDT.Subtract(DateTime.Now)
        If ts.TotalMilliseconds > 0 Then
            lblTime.Text = ts.ToString("mm\:ss")
        Else
            lblTime.Text = "00:00"
            tmrCountdown.Stop()
            MessageBox.Show("Done")
        End If
    End Sub

End Class
我想改变,而不是这一行中的数字3,来输入变量中的值

Private CountDownFrom As TimeSpan = TimeSpan.FromMinutes(3)
我有3个不同值的单选按钮

Private Sub rd_1h_CheckedChanged(sender As Object, e As EventArgs) Handles rd_1h.CheckedChanged
    ho = 1
End Sub

Private Sub rd_2h_CheckedChanged(sender As Object, e As EventArgs) Handles rd_2h.CheckedChanged
    ho = 2
End Sub

Private Sub rd_3h_CheckedChanged(sender As Object, e As EventArgs) Handles rd_3h.CheckedChanged
    ho = 3
End Sub

如果你不明白,请问我,并为我的英语不好道歉。

也许你需要这样的东西

Private TargetDT As DateTime
Dim ho As Integer = 1

Private Sub StartTimerTick(sender As Object, e As System.EventArgs, Optional countDownFrom As Integer = 0)

    If sender Is Nothing Then
        TargetDT = DateTime.Now.Add(TimeSpan.FromMinutes(countDownFrom))
        Dim mTmr = New Timer
        mTmr.Interval = 500
        AddHandler mTmr.Tick, AddressOf StartTimerTick
        mTmr.Start()
        Exit Sub
    End If

    Console.WriteLine("Tick ")


    Dim ts As TimeSpan = TargetDT.Subtract(DateTime.Now)
    If ts.TotalMilliseconds > 0 Then
        lblTime.Text = ts.ToString("mm\:ss")
    Else
        lblTime.Text = "00:00"
        CType(sender, Timer).Stop()
        CType(sender, Timer).Dispose()
        MessageBox.Show("Done")
    End If

End Sub


Private Sub rd_1h_CheckedChanged(sender As Object, e As EventArgs) Handles rd_1h.CheckedChanged,
                                                                           rd_2h.CheckedChanged,
                                                                           rd_3h.CheckedChanged


    Select Case CType(sender, Control).Name
        Case "rd_1h"
            ho = 1
        Case "rd_2h"
            ho = 2
        Case "rd_3h"
            ho = 3
    End Select

    'StartTimerTick(Nothing, Nothing, ho)

End Sub

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    StartTimerTick(Nothing, Nothing, ho)
End Sub

在表单加载时启动计时器,在此之前,您打算如何使用单选按钮更改
ho
的值?