使用按钮呼叫计时器

本文关键字:计时器 呼叫 按钮 | 更新日期: 2023-09-27 18:36:39

我创建了一个每秒更新一次的计时器

using System.Windows.Threading;
 public MainWindow()
    {
        InitializeComponent();
        _dt_tick.Tick += new EventHandler(_dt_Tick);
        _dt_tick.Interval = new TimeSpan(0, 0, 1);
        _dt_tick.Start();
    }

之后,我创建了一个链接到此计时器的函数

    private void _dt_Tick(object s, EventArgs e)
    {
        try
        {
        ......

        }
        catch (Exception _ex)
        { MessageBox.Show(_ex.ToString(), "Error in Timer", MessageBoxButton.OK, MessageBoxImage.Error); }
    }

我想要的是单击一个按钮后重新启动此计时器

    private void button1_Click(object sender, RoutedEventArgs e)
    {
      ...........
    }

我已经尝试过_dt_Tick(对象 s,事件参数 e),但它不起作用

任何想法请,真的很紧急。

使用按钮呼叫计时器

如何使用stopStart方法?

private void button1_Click(object sender, RoutedEventArgs e)
{
    _dt_tick.Stop();
    _dt_tick.Start();
}

更新

>>>

啊,你的问题不清楚,但现在我明白你想要什么了。但是,手动调用事件处理程序是一种不好的做法。相反,添加从事件处理程序调用的新方法。然后,您也可以从其他任何地方调用该方法:

private void _dt_Tick(object s, EventArgs e)
{
    DoSomething();
}
private void DoSomething()
{
    try
    {
        ...
    }
    catch (Exception _ex)
    { 
        MessageBox.Show(_ex.ToString(), "Error in Timer", MessageBoxButton.OK, 
            MessageBoxImage.Error); 
    }
}
private void button1_Click(object sender, RoutedEventArgs e)
{
    DoSomething();
}

假设_dt_tick是一个 Timer 对象,为什么不在button1_Click中使用以下代码?

_dt_tick.Stop();
_dt_tick.Start();