C#计时器未停止

本文关键字:计时器 | 更新日期: 2023-09-27 18:00:01

以下是我所拥有的,为什么我的计时器没有停止?我不确定我做错了什么。我对C#还很陌生,我正在努力让我的启动屏幕隐藏起来(form1),我的程序启动(samptool),但我的程序开始了,但启动屏幕保持不变,计时器重置而不是停止。每隔6.5秒,应用程序就会在一个新窗口中打开。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Timers;
namespace SplashScreen.cs
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            timer1.Interval = 250;
            timer2.Interval = 6500;
            timer1.Start();
            timer2.Start();
        }
        private void pictureBox1_Click(object sender, EventArgs e)
        {
        }
        private void timer1_Tick(object sender, EventArgs e)
        {
            this.progressBar1.Increment(5);
        }
        private void timer2_Tick(object sender, EventArgs e)
        {
            SampTool w = new SampTool();
            Form1 m = new Form1();
            timer1.Enabled = false;
            timer1.Stop();
            timer2.Enabled = false;
            timer2.Stop();
            m.Hide();
            w.Show();
        }
    }
}

C#计时器未停止

当您使用new关键字时,您将创建一个类的新实例:

Form1 m = new Form1();

创建新实例时,会调用constructor(构造函数是与类名称相同的方法)
这将再次运行构造函数中的所有代码,从而创建新的计时器。

要关闭当前表单,只需运行表单Hide方法:

private void timer2_Tick(object sender, EventArgs e)
{
    timer1.Stop();
    timer2.Stop();
    SampTool sampTool = new SampTool();
    sampTool.Show();
    Hide();  // call the Forms Hide function.
}