我创建了一个每秒更新一次的计时器
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,EventArgs e),但它不起作用
请问任何想法。真的很紧急。答案 0 :(得分:0)
假设_dt_tick
是Timer对象,为什么不在button1_Click
中使用以下代码?
_dt_tick.Stop();
_dt_tick.Start();
答案 1 :(得分:0)
如何使用stop
和Start
方法?:
private void button1_Click(object sender, RoutedEventArgs e)
{
_dt_tick.Stop();
_dt_tick.Start();
}
UPDATE>>>
啊,你的问题不清楚,但现在我明白了你的意思。但是,手动调用事件处理程序是不好的做法。而不是这个,添加一个从事件处理程序调用的新方法。然后你也可以从其他任何地方调用该方法: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();
}