var startTime = DateTime.Now;
var timer = new Timer() { Interval = 1000 };
timer.Tick += (obj, args) =>
label14.Text =
(TimeSpan.FromMinutes(Convert.ToDouble( comboBox3.Text)*60) - (DateTime.Now - startTime))
.ToString("hh\\:mm\\:ss");
MessageBox.Show("Timer started");
timer.Enabled = true;
按下按钮时,我会以特定的形式显示计时器,我希望计时器在关闭表单后继续计时,以便给我通知。 但是当关闭表格时计时器停止, 任何想法?
答案 0 :(得分:2)
你不能"关闭"表单并使Timer对象仍然有效(如果您在主窗体上调用计时器)。 (这就像说我不能点击按钮并在关闭表单后运行一个功能)。但是,在OnFormClosing参数上,您可以使用form.Visible = false
并取消实际关闭表单。见这里:Timer doesn't fire after Form closed
如果你想真正关闭表单并使其运行,一个选项可能是查看可能创建一个任务计划程序对象,该对象将在特定时间完成任务。
答案 1 :(得分:0)
快速点击:改为调用“隐藏()” - 这将使计时器继续运行。
现在已经开始了,你仍然可以让你的计时器保持静态 - 理想情况下将它放在一个完全独立的类中,或者,如果你坚持,在主表单上使它静止。然后将您的通知代码放在主表单上。
您仍然可以在该特定表单上为Tick事件添加一个侦听器,并且只需记住在隐藏表单时将其删除(即Tick -= your_label_event_handler
)