初学者C#:使用对象o,RoutedEventArgs发送者

时间:2013-10-23 22:33:55

标签: c# silverlight timer

基本上我希望我的应用程序运行一个计时器,我找到了以下代码:

public void StartTimer(object o, RoutedEventArgs sender)
{
    System.Windows.Threading.DispatcherTimer myDispatcherTimer = new System.Windows.Threading.DispatcherTimer();
    myDispatcherTimer.Interval = new TimeSpan(0, 0, 0, 0, 100); // 100 Milliseconds 
    myDispatcherTimer.Tick += new EventHandler(Each_Tick);
    myDispatcherTimer.Start();
}

// A variable to count with.
int i = 0;

// Raised every 100 miliseconds while the DispatcherTimer is active.
public void Each_Tick(object o, EventArgs sender)
{
    myTextBlock.Text = "Count up: " + i++.ToString();
}

但我不明白如何调用StartTimer,

private void Button_Click_1(object sender, RoutedEventArgs e)
{
    StartTimer();
}

不起作用,因为它说没有重载需要零参数,但我不知道用于对象发送器和RoutedEventsArgs的参数是什么,以便它可以工作。

我知道这是一个初学者的问题,但我一直在做很多寻找无济于事,非常感谢任何帮助!

1 个答案:

答案 0 :(得分:2)

看起来您应该只删除StartTimer中的参数 - 它们没有被使用,也没有必要:

public void StartTimer()

请注意,对于两个事件处理程序“Button_Click_1”和“Each_Tick”,需要方法参数。要订阅事件,处理程序的参数必须与事件的签名匹配。但是“StartTimer”只是一种常规方法,所以它可以有任何参数。