我需要的是让计时器触发另一个类中的事件处理程序(比如每秒)。这将是 Windows 窗体程序的一小部分。
我曾尝试使用委托来“调用”事件处理程序,但我不断收到语法错误。有人可以通过一个简单的代码示例引导我走向正确的方向吗?
下面的代码是我的开始,注释部分工作正常,但我希望在 Windows 计时器触发时触发事件。
namespace WindowsFormsApplication3
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public event TimerHandler Tick;
public EventArgs e = null;
public delegate void TimerHandler(Timer t, EventArgs e);
public class Timer
{
public event TimerHandler Tick;
public EventArgs e = null;
public delegate void TimerHandler(Timer t, EventArgs e);
}
public class Listener
{
public static int ticker = 0;
public void Subscribe(Timer t)
{
t.Tick += new Timer.TimerHandler(HeardTick);
}
private void HeardTick(Timer t, EventArgs e)
{
//lblTimer.Text = ticker.ToString(); //Don't know how to change forms control
ticker++;
}
}
private void btnStart_Click_1(object sender, EventArgs e)
{
Timer t = new Timer();
Listener l = new Listener();
l.Subscribe(t);
//t.Start();
}
public void timer1_Tick(object sender, EventArgs e)
{
if (Tick != null)
{
Tick(this, e); // "this" is incorrect, invalid argument
}
}
}
}