我目前正在制作一个有过期日期的程序,我希望我的计时器能够在程序关闭时工作,这是我的代码:
private int counter = 30;
private void Form2_Load(object sender, EventArgs e)
{
timer1.Interval = 1000; // 1 day
timer1.Tick += timer1_Tick;
timer1.Start();
}
private void timer1_Tick_1(object sender, EventArgs e)
{
counter--;
if (counter == 0)
timer1.Stop();
label3.Text = counter.ToString();
}
private void Form2_FormClosing(object sender, FormClosingEventArgs e)
{
}
如果有可能的话,我会很高兴知道如何做到这一点
答案 0 :(得分:0)
如果计时器继续计时,即使程序关闭,也不能使用计时器。改为使用DateTime
类。
将DateTime.Now的值保存到磁盘(例如,使用应用程序设置),然后,为了检查到期时间,再次加载该值,并将其与当前时间进行比较:
假设startOfPeriod
是您的有效期的开始:
if( startOfPeriod.AddDays( 30 ) < DateTime.Now )
{
// Time has expired
}
注意:请注意,在此方法中,您的软件可能会在当天的宽度中过期。如果您不希望发生这种情况,请将上述if
表达式替换为:
if( startOfPeriod.Date.AddDays( 30 ) < DateTime.Now.Date )