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

間隔を1ミリ秒ではなく1秒に設定してみてください

于 2013-02-24T06:38:06.413 に答える
1

割り当てましorder = 0たが、どこにも増やしず、この条件を設定しました

if (this.order >= 5)これは決して真実ではありません。したがって、それはあなたのデクリメントを続けtik、最後にあなたのこの条件if (tik > 0)は偽になります。したがって、elseが実行され、に設定されremainingSecondますZERO。そのため、出力としてゼロが得られます。

あなたのタイマーは1ミリ秒ごとに刻々と過ぎています。timerが開始され、tickすぐにその時点でorderゼロになり、 ZERoに設定remainingSecondsされるelseステートメントが実行され、タイマーも実行されます。したがって、ボタンをクリックしても何も起こりません。Stop

于 2013-02-24T07:29:46.667 に答える