1秒から2分までの経過時間を示すテキストボックスを含むフォームがあります。正常に動作しています。ただし、ゲームのラウンドが終了したときにタイマーを停止し、別のフォームのボタンがクリックされたときにタイマーを再開する必要があります。したがって_timer.Stop()
、timer_tick イベント ハンドラーとForm 2_timer.Start()
のボタンイベント ハンドラーに含まれています。click
私の問題は、タイマーが、0:00からではなく、他のフォームのボタンを押すまでの経過時間から開始されることです。何か案は?
これは、タイマーに関するコードです。
private DateTime _myDateTime;
private System.Windows.Forms.Timer _timer;
private DateTime newDate;
public Tournament()
{
_timer = new System.Windows.Forms.Timer();
_timer.Interval = 1000;
_timer.Tick += Timer_Tick;
_myDateTime = DateTime.Now;
newDate = new DateTime();
newDate = newDate.AddMinutes(2.00);
_timer.Start();
InitializeComponent();
}
void Timer_Tick(object sender, EventArgs e)
{
var diff = DateTime.Now.Subtract(_myDateTime);
this.textBox1.Text = diff.ToString(@"mm\:ss");
DateTime dt = Convert.ToDateTime(diff.ToString());
if (newDate.Minute == dt.Minute)
{
_timer.Stop();
_myDateTime = DateTime.Now;
displayPointsOrResults();
this.textBox1.Text = diff.ToString(@"mm\:ss");
}
}
displayPointsOrResults()
私は別のフォームのインスタンスを作成しているのでPoints()
、ポイントフォームにはボタン1があり、タイマーに関係のない他のものとは別に、イベントハンドラーにこれがあります: tournament.Timer1.Start();
トーナメントクラスからタイマーを取得して、もう一度開始します。
私は何を間違っていますか?