C# 如果经过特定时间,则在C中显示messagebox#
所以,我想这样做:如果从加载表单中经过了特定的时间(例如9小时),那么我想显示messagebox说“9小时过去了”。我的代码是:C# 如果经过特定时间,则在C中显示messagebox#,c#,timer,messagebox,stopwatch,C#,Timer,Messagebox,Stopwatch,所以,我想这样做:如果从加载表单中经过了特定的时间(例如9小时),那么我想显示messagebox说“9小时过去了”。我的代码是: public partial class Form1 : Form { Stopwatch stopWatch = new Stopwatch(); public Form1() { InitializeComponent(); stopWatch.Start(); } private vo
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"));
}
那么,我在哪里写这段代码?如果您有更好的方法,请告诉我。为了在特定时间段后执行特定任务,应使用System.Forms.Timer(对于windows窗体)。您可以使用其已用事件,这样您就可以实现您的条件。尝试改用计时器 使用: 计时器定期调用代码。每隔几秒钟或几分钟,它就会 执行一个方法。这有助于监测患者的健康状况 重要程序,如诊断程序。System.Timers名称空间 事实证明这很有用 见此:
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"));
}
}
}
除了使用其他人概述的计时器外,还可以直接使用秒表返回的TimeSpan的TotalHours()属性。已用时间:
TimeSpan ts = stopWatch.Elapsed;
if (ts.TotalHours >= 9)
{
MessageBox.Show("passed: " + ts.TotalHours.ToString("0.00"));
}
人们没有意识到的是,
双倍工作时间不太可能正好是9点!为什么不让你的计时器在你想要的时间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");
}
当计时器事件发生时编写代码。阅读Timer类的文档,这是一个很好的自我解释。你应该阅读如何使用Timer。即使没有点击按钮,你希望弹出窗口显示吗?或者你希望它只显示一次按钮被点击?这也是很有帮助的,我希望你没有等待9个小时,看看这是否有效!您应该将其放在Tick()事件中,以代替以前手动计算“sec”、“min”和“hour”的代码*假设您没有使用weston的代码将Interval()设置为所需的整个持续时间!=)
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");
}