3

ボタンのテキストに表示されている1分からの簡単なカウントダウンタイマーを実行しようとしています。ボタンが押されたとき、私はそれを0までカウントダウンしたいのですが、ショーは「タイムアップ」します。私はこれを行う方法を理解しようとして見つけることができるすべての投稿を読んでいますが、できません。誰かが私が間違っていることを教えてもらえますか?

これは、ビジュアルC#WindowsPhoneアプリケーションにあります。投稿が正しく表示されるようにしたいと思います。このサイトで質問するのはこれが初めてです。これは初めてです。よろしくお願いします。

void bTime_Click(object sender, RoutedEventArgs e)
    {
        DispatcherTimer timer1 = new DispatcherTimer();
        timer1.Interval = TimeSpan.FromSeconds(60);
        timer1.Tick += new EventHandler(timer_Tick);
        timer1.Start();
    }

    int tik = 60;
    void timer_Tick(object sender, EventArgs e)
    {
        bTime.Content = timer.ToString();
        if (tik > 0)
            Countdown.Text = (timer--).ToString();
        else
            Countdown.Text = "Times Up";
        throw new NotImplementedException();
    }
4

2 に答える 2

9

まず、を取り除きthrow new NotImplementedExceptionます。次に、tikをデクリメントする必要があります。だからこのようなもの:

    DispatcherTimer timer1 = new DispatcherTimer();
    private void button1_Click(object sender, RoutedEventArgs e)
    {
        timer1.Interval = new TimeSpan(0, 0, 0, 1);
        timer1.Tick += new EventHandler(timer1_Tick);
        timer1.Start();
    }

    int tik = 60;
    void timer1_Tick(object sender, EventArgs e)
    {
        Countdown.Text = tik + " Seconds Remaining";
        if (tik > 0)
            tik--;
        else
            Countdown.Text = "Times Up";
    }

間隔を変更し、毎秒tikを減らしています。素晴らしくてシンプル。それが役に立てば幸い。わからない場合はお知らせください。

于 2012-06-26T01:39:02.350 に答える
3

コードの何が問題になっていますか?私には、これらの部分のように見えます。

bTime.Content = timer.ToString();

bTime.Content = timer.ToString();

まず第一に、私は可変タイマーが何であるかさえ知りません。timer1になっているのでしょうか?

tikは減算されることはなく、常に60のままになります。

コードを次のように変更してみませんか。

DispatcherTimer timer1 = new DispatcherTimer();
void bTime_Click(object sender, RoutedEventArgs e)
{
    timer1.Interval = TimeSpan.FromSeconds(60);
    timer1.Tick += new EventHandler(timer_Tick);
    timer1.Start();
}

int tik = 60;
void timer_Tick(object sender, EventArgs e)
{
    bTime.Content = tik.ToString();
    if (tik > 0)
        Countdown.Text = (tik--).ToString();
    else
    {
        Countdown.Text = "Times Up";
        timer1.Stop();
    }
    throw new NotImplementedException();
}
于 2012-06-26T01:36:53.087 に答える