0

これは、StackOverflow に関する 2 番目の質問です。しばらく前に最初の質問を投稿しましたが、すぐに有効な返信があり、非常に感銘を受け、感謝しています.

とにかく、私が知りたいのは、 DispatcherTimer を機能させて特定のテキストボックスに時間を表示し、特定の時間(60秒としましょう)に達したら停止し、60秒後に機能を実行する方法です。

私が基本的にこれを使用しているのは次のとおりです。

60 秒後に停止し、スコアまたは関連するものを表示する必要があるゲームを作成します。そのため、テキスト ボックスに時間を表示し、60 秒以降に関数を実行する必要があります。

詳細は次のとおりです。

テキストボックスは「タイマーボックス」と呼ばれます

これが私が試したコードです:

    DispatcherTimer dt = new DispatcherTimer();

    private void TimerStart(object sender, RoutedEventArgs e)
    {
        dt.Interval = TimeSpan.FromSeconds(1);
        dt.Tick += dt_Tick;
        dt.Start();
    }

    int count = 0;
    void dt_Tick(object sender, object e)
    {
        count = count + 1;
        timerbox.Text = Convert.ToString(count);
    }

テキストボックスに時間が表示されないだけでなく、特定の時点で停止して機能を実行する方法がわかりません。

ここにたどり着いていただきありがとうございます。私は完全な初心者なので、完全な説明を添えて回答を残してください:)

PS Visual Studio 2013 で Windows ストア アプリ開発環境を使用しています。また、通常の C# 環境にある「タイマー」はありません。

4

2 に答える 2

0

DispatcherTimer の通常の流れは次のようになります。

  1. 最初に新しいオブジェクトを設定し、Tick ごとに目的のコードを実行する新しい EventHandler を設定し、目的の Tick Interval の Timespan を設定します。

    public MainPage()
    {
        this.InitializeComponent();            
    
        timer = new DispatcherTimer();
        timer.Tick += new EventHandler<object>(timer_Tick);
        timer.Interval = TimeSpan.FromMilliseconds(bpm);
    }
    
  2. Timer_Tick イベントを設定する

    async Void timer_Tick(object Sender, object e)
    {
    await this.Dispatcher.RunAsync(Windows.UI.core.CoreDispatcherPriority.High, () => 
    {
    //Run the Code
    textBox1.text = timer.interval.TotalMilliseconds.ToString();
    });
    
  3. ボタンなど、Dispatcher を開始する (必要に応じて停止する) トリガーが必要です。

    private void StartButton_Click() 
    {
    timer.Start();
    }
    
  4. この例は、VS2015 内の新しい Windows 10 ユニバーサル アプリ プラットフォームを使用して行われましたが、通常の Windows 8 アプリでもほぼ同じように見えるはずです。

于 2015-11-20T14:25:23.773 に答える