StopWatchを作成するためにTimers.Timer。私はTimer.Elapsedを使用して、perticular時間後の表示時間を処理します。私は1のタイマー間隔を与え、真に有効にします。私はまた、AutoResetをtrueにします。しかし、問題は、イベントが、私が唯一once.How私はTimer.Elapsed火事イベントは一度だけ、私は毎秒それを欲しい
System.Timers.Timer StopWatchTimer = new System.Timers.Timer();
Stopwatch sw = new Stopwatch();
public void StopwatchStartBtn_Click(object sender, ImageClickEventArgs e)
{
StopWatchTimer.Start();
StopWatchTimer.Interval = 1;
StopWatchTimer.Enabled = true;
StopWatchTimer.AutoReset =true;
sw.Start();
StopWatchTimer.Elapsed += new System.Timers.ElapsedEventHandler(StopWatchTimer_Tick);
}
protected void StopWatchStopBtn_Click(object sender, ImageClickEventArgs e)
{
TextBoxStopWatch.Text = "00:00:000";
StopWatchTimer.Stop();
sw.Reset();
sw.Stop();
}
public void StopWatchTimer_Tick(object sender,EventArgs e)
{
TextBoxStopWatch.Text= Convert.ToString(sw.Elapsed);
}
ありがとう... TextBoxのすべてのSecond.Iでの時間は成功を得るすべての代替案を試してみなく変更することができますテキストボックスに時刻を取得するだけonce.and発射されています更新: 私はVisual Studio.Butで新しいウェブサイトを作成することによってそれを試しても、まだ成功していません。同じ問題。今、更新は、私はラインにブレークポイントを設定するとき
TextBoxStopWatch.Text= Convert.ToString(sw.Elapsed);
テキストが連続して存在し変更が、テキストボックスに表示されていないです。あなたはこれを理解することを願っています。
コードを実行すると、InvalidOperationExceptionが発生します。理由は、StopWatchTimer_Tickメソッドが別のスレッドのコントロールにアクセスしようとしているためです。残りのコードは何ですか? – NotMe
興味深いことに、私がコンパイルして(VSの外で)直接実行すると、期待どおりに動作します。どのバージョンのC#を使用していますか? – NotMe
@Chris Lively .NET Framework 4.0 – Hiren