我有一个工作代码:form1,带有启动form2然后关闭form1的计时器,我的问题是计时器启动form2两次,任何帮助如何避免这么多谢谢,我的代码:
private void TimerCount_Tick(object sender, EventArgs e)
{
String FajrCount = LblTime10.Text;
String RealTime = DateTime.Now.ToString("HH:mm");
if (FajrCount == RealTime)
{
TimerCount.Stop();
new FrmCountDfajr().ShowDialog();
TimerCount.Start(); >>>>>>> need to restart TimerCount for next day
}
}
我同意 Olivier Jacot-Decombes 的观点,您应该以不同的方式处理间隔,或者您可以使用
TimeSpan
计算“目标时间”并检查当前时间是否等于或超过该时间。然后您只需添加一天即可为下一个目标设置。
你绝对应该重新设计你的算法......
这是一个非常丑陋的解决方案......但您可以简单地检查表单是否已经打开:
if (FajrCount == RealTime)
{
TimerCount.Stop();
if (Application.OpenForms.OfType<FrmCountDfajr>().Count() == 0)
{
new FrmCountDfajr().ShowDialog();
}
TimerCount.Start();
}