0

我有个问题。我想将剩余的秒数保存在倒数计时器中(例如,剩余时间 = 12 秒)我想将这 12 秒保存在一个变量中。这是我的代码

    int order = 0;
    bool right = true;
    DispatcherTimer timer1 = new DispatcherTimer();
    private void timer_start()
    {
        timer1.Interval = new TimeSpan(0, 0, 0, 1);
        timer1.Tick += new EventHandler(timer1_Tick);
        timer1.Start();

    }
    int remainingSecond;
    int tik = 15;
    void timer1_Tick(object sender, EventArgs e)
    {
        this.Timer.Text = tik.ToString();
        if (tik > 0)
        {
            tik--;
            if (this.order >= 5)
            {
                timer1.Stop();
                if (right)
                {
                    remainingSecond = tik;
                }
                else
                    remainingSecond = 0;
            }
        }
        else
        {
            remainingSecond = 0;
            timer1.Stop();
        }
    }

每次我写“remainingSecond”时,它的值总是0。我希望这个remainingSecond值是12。请帮帮我。谢谢

4

2 回答 2

1

您在任何地方分配order = 0但没有增加它并设置此条件

if (this.order >= 5)这永远不会是真的。所以它会不断递减你tik的,最后你的这个条件if (tik > 0)会变成假的。所以 else 将被执行,它会将你设置remainingSecondZERO. 这就是为什么你得到零作为输出。

您的计时器每 1 毫秒计时一次。将timer开始,并且将tick立即开始,届时order为零,并且您的 else 语句将被执行,该语句将设置remainingSecondsZERo并且Stop计时器也将执行。因此,单击按钮不会为您做任何事情。

于 2013-02-24T07:29:46.667 回答
1

尝试将间隔设置为 1 秒而不是 1 毫秒

于 2013-02-24T06:38:06.413 回答