0

私はをタイマーに組み込んでいます:

System.Windows.Forms.Timer timerLoop;

タイマーが開始されたら、(可能であれば) このタイマーに整数値を渡したいと思います。

timerLoop.Start();

これまで、タイマーを開始する直前に、タイマーがこの変数を読み取って更新できる一般変数のみを作成しました。

4

2 に答える 2

6

これを行うには、次の 2 つの方法があります (その他の方法もあるかもしれません)。

Timerそれを継承する新しいものを作成してbase を拡張します。

private class TimerExnteded : Timer
{
    public int Value { get; set; }

    public TimerExnteded(int value)
    {
        Value = value;
    }
}

その値をTickイベントで使用します。

の使用TagプロパティTimer

Timer t = new Timer();
 t.Tag = 5;
 t.Start();

 //event
 private void t_Tick(object sender, EventArgs e)
 {
     var timer = sender as Timer;
     var value = (timer.Tag as int?) ?? 0; 

     value++;

     timer.Tag = value;
 }

2 番目のアプローチでは、値のボックス化/ボックス化解除を使用します。

于 2013-05-14T11:13:52.887 に答える