在Windows Forms应用程序中添加计时器

20

我想添加一个计时器而不是倒计时,它会在表单加载时自动启动。起始时间应为45分钟,一旦结束,即到达0分钟,表单应该以显示的消息终止。怎样实现这个?

语言:最好使用C#。


1
就我个人而言,我喜欢能够帮助别人做作业。关键词是“帮助”。那么,为什么我们要在没有合理尝试展示自己的努力的情况下去“代替”别人完成作业呢? - IAbstract
3个回答

63

稍微详细一点:

    private void Form1_Load(object sender, EventArgs e)
    {
        Timer MyTimer = new Timer();
        MyTimer.Interval = (45 * 60 * 1000); // 45 mins
        MyTimer.Tick += new EventHandler(MyTimer_Tick);
        MyTimer.Start();
    }

    private void MyTimer_Tick(object sender, EventArgs e)
    {
        MessageBox.Show("The form will now be closed.", "Time Elapsed");
        this.Close();
    }

嘿兄弟,非常感谢...它起作用了... 实际上我是一个编程新手,如果您能解释一下它是如何工作的,我会非常感激。特别是这两行代码: MyTimer.Tick += new EventHandler(MyTimer_Tick); MyTimer.Start();为什么是1000?即在45601000中... 我想在表单上显示倒计时时间,比如在标签或其他地方... 谢谢 - knowledgehunter
MyTimer.Tick += new EventHandler(MyTimer_Tick);当计时器的时间间隔过去后,会触发 Tick 事件。在这种情况下,我们说希望在发生滴答声事件时调用 MyTimer_Tick 方法。MyTimer.Interval = (45 * 60 * 1000);计时器的时间间隔是以毫秒为单位的,因此我使用了一个计算而不是直接计算出答案并插入值。我认为这使它更容易理解。 - Tim
谢谢...我明白了...但如何在表单中显示倒计时? - knowledgehunter
如果你想显示倒计时,那么你必须使用更高精度的定时器(例如1秒或1分钟,取决于你的期望),并在其中处理逻辑。 - Filip Navara

3
在你的表单主体中添加类似以下代码。在可视化编辑器中双击表单以创建表单加载事件。
 Timer Clock=new Timer();
 Clock.Interval=2700000; // not sure if this length of time will work 
 Clock.Start();
 Clock.Tick+=new EventHandler(Timer_Tick);

然后添加一个事件处理程序,在计时器触发时执行某些操作。
  public void Timer_Tick(object sender,EventArgs eArgs)
  {
    if(sender==Clock)
    {
      // do something here      
    }
  }

-10

4
这个方案太差了...要下载第三方计时器,哼。为什么不使用标准的计时器控件呢?你是这个组件的作者吗? - Jeremy Thompson
我是个初学者... 但是在运行时如何显示计时器控件呢?就像第三方计时器那样... 如果您知道,请回答。 - Sunil Jere
私有子程序 timer1_Tick(sender As Object, e As EventArgs) Dim diff As New TimeSpan() diff = DateTime.Now.Subtract(startTime) lblTime.Text = diff.Hours & ":" & diff.Minutes.ToString("00") & ":" & diff.Seconds.ToString("00") lblTime.Invalidate() End Sub - Jeremy Thompson
在Visual Studio WinForms中,使用C#? - Sunil Jere
1
嗯,你甚至没有感谢我提供VB.Net代码。 - Jeremy Thompson
抱歉,因为我从未尝试过VB...无论如何还是谢谢你;) - Sunil Jere

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接