我有一个表单,其中包含一个文本框,显示时间间隔为 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();
我从锦标赛课程中获取计时器并重新开始的地方。
我究竟做错了什么?