表单关闭后定时器不触发

Posted

技术标签:

【中文标题】表单关闭后定时器不触发【英文标题】:Timer doesn't fire after Form closed 【发布时间】:2012-08-27 04:08:13 【问题描述】:

我有一个使用 VS 设计器声明的带有 System.Windows.Forms.Timer 的 .NET 表单。计时器工作正常。关闭表单后,即使我重新创建 Timer 对象,计时器也不会触发事件。我已将表单配置为永不关闭:

    void MainFormFormClosing(object sender, FormClosingEventArgs e)
    
        // never close
        e.Cancel = true;

        // only hide
        this.Visible = false;

    

如何让计时器触发事件​​?我做错了什么?

【问题讨论】:

当表单关闭时,您需要定时器触发什么? 因为我稍后会使用this.Visible = true 显示表单。我需要在这段时间内触发计时器。 【参考方案1】:

我刚试过这个。 在表单上添加一个WinForms Timer组件加载时启动计时器,并在调试当前时间调试窗口。对我来说很好用...

public frmTimer()

    InitializeComponent();

private void Form1_Load(object sender, EventArgs e)

    timer1.Start();

private void timer1_Tick(object sender, EventArgs e)

    Debug.WriteLine(DateTime.Now.ToLongTimeString());

private void Form1_FormClosing(object sender, FormClosingEventArgs e)

    e.Cancel = true;
    this.Visible = false;

【讨论】:

我终于设法使用System.Timers.Timer 使其工作。

以上是关于表单关闭后定时器不触发的主要内容,如果未能解决你的问题,请参考以下文章

System.Timers 定时器未触发事件

如何在 Qt 中修改 QWebsocket 定时器

Proteus仿真51单片机外部中断控制输出10秒,后关闭输出

WinForms 中的计时器

STM32定时器触发ADC怎么配置

传奇脚本 组队进图 全员触发倒计时