如果特定的时间过去了,在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"));
        }

那么,我在哪里写这段代码?如果你有更好的方法,请告诉我。

如果特定的时间过去了,在c#中显示消息框

除了使用前面提到的定时器之外,您还可以直接使用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"));
            }
        }
     }