如果特定的时间过去了,在c#中显示消息框
本文关键字:显示 消息 时间 过去了 如果 | 更新日期: 2023-09-27 18:12:44
所以,我想这样:如果特定的时间过去了(例如9小时)从加载表单,比我要显示消息框说"9小时过去了"。我的代码是:
public partial class Form1 : Form
{
Stopwatch stopWatch = new Stopwatch();
public Form1()
{
InitializeComponent();
stopWatch.Start();
}
private void button1_Click(object sender, EventArgs e)
{
double sec = stopWatch.ElapsedMilliseconds / 1000;
double min = sec / 60;
double hour = min / 60;
if (hour == 9.00D)
{
stopWatch.Stop();
MessageBox.Show("passed: " + hour.ToString("0.00"));
}
}
}
,问题是我不知道在哪里写这部分代码:
if (hour == 9.00D)
{
stopWatch.Stop();
MessageBox.Show("passed: " + hour.ToString("0.00"));
}
那么,我在哪里写这段代码?如果你有更好的方法,请告诉我。
除了使用前面提到的定时器之外,您还可以直接使用Stopwatch返回的TimeSpan的TotalHours()属性。时间:
TimeSpan ts = stopWatch.Elapsed;
if (ts.TotalHours >= 9)
{
MessageBox.Show("passed: " + ts.TotalHours.ToString("0.00"));
}
人们没有意识到的是,double hours
不太可能正好是9.00!为什么不让你的计时器在你想要的9小时后触发一次呢?
Timer timer;
public Form1()
{
InitializeComponent();
timer.Tick += timer_Tick;
timer.Interval = TimeSpan.FromHours(9).TotalMilliseconds;
timer.Start();
}
void timer_Tick(object sender, EventArgs e)
{
timer.Stop();
MessageBox.Show("9 hours passed");
}
为了在特定时间段后完成特定任务,应该使用System.Forms.Timer(在windows窗体的情况下)。你可以使用它的Elapsed事件,这样你就可以实现你的条件。
尝试使用Timer代替。从这里的例子
Timer timer;
public Form1()
{
InitializeComponent();
timer.Tick += new EventHandler(timer_Tick); // when timer ticks, timer_Tick will be called
timer.Interval = (1000) * (10); // Timer will tick every 10 seconds
timer.Enabled = true; // Enable the timer
timer.Start(); // Start the timer
}
void timer_Tick(object sender, EventArgs e)
{
double sec = stopWatch.ElapsedMilliseconds / 1000;
double min = sec / 60;
double hour = min / 60;
if (hour == 9.00D)
{
stopWatch.Stop();
MessageBox.Show("passed: " + hour.ToString("0.00"));
}
}
使用定时器:
Timer定期调用代码。每隔几秒或几分钟,它执行一个方法。这对于监视控件的运行状况非常有用重要的程序,与诊断程序一样。这个系统。计时器的命名空间证明有用。
看到这个:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
stopWatch.Start();
tm.Interval = 1000;
tm.Enabled = true;
tm.Tick += new EventHandler(tm_Tick);
tm.Start();
}
void tm_Tick(object sender, EventArgs e)
{
double sec = stopWatch.ElapsedMilliseconds / 1000;
double min = sec / 60;
double hour = min / 60;
if (hour == 9.00D)
{
stopWatch.Stop();
MessageBox.Show("passed: " + hour.ToString("0.00"));
}
}
}