Winforms 如何在单击事件中停止计时器?在C#Net中?

Winforms 如何在单击事件中停止计时器?在C#Net中?,winforms,Winforms,如何停止Winforms计时器触发滴答事件 这是我的代码: Timer tm = new Timer(); private void button1_Click(object sender, EventArgs e) { tm = new Timer(); tm.Interval = 1000; tm.Tick += new EventHandler(tm_Tick); tm.Start(); }

如何停止Winforms计时器触发滴答事件

这是我的代码:

    Timer tm = new Timer();

    private void button1_Click(object sender, EventArgs e)
    {
        tm = new Timer();
        tm.Interval = 1000;
        tm.Tick += new EventHandler(tm_Tick);
        tm.Start();
    }

    void tm_Tick(object sender, EventArgs e)
    {
        MessageBox.Show("hi");
        tm.Stop();

    }

我不确定你想做什么。您是否试图使勾号事件处理程序只执行一次?如果是这种情况,当前设置将仅在第一个消息框关闭时停止计时器触发滴答事件。要避免此问题,请在tm_Tick方法中切换两行

此外,不应在单击处理程序中设置计时器。你应该只启动它。我建议你按照这句话做点什么:

Timer tm;
private void form1_Load(object sender, EventArgs e)
{
    tm = new Timer();
    tm.Interval = 1000;
    tm.Tick += new EventHandler(tm_Tick);
}
private void button1_Click(object sender, EventArgs e)
{
    tm.Start();
}

void tm_Tick(object sender, EventArgs e)
{
    tm.Stop();
    MessageBox.Show("hi");
}

你到底有什么问题?单击事件中停止勾号事件意味着什么?