public partial class Timer2 : Form
System.Timers.Timer Mytimer;
public delegate void SetControlValue(long value);
private void label1_Click(object sender, EventArgs e)
private void btnTimeStart_Click(object sender, EventArgs e)
private void btnTimeStop_Click(object sender, EventArgs e)
private void Timer2_Load(object sender, EventArgs e)
Mytimer = new System.Timers.Timer(interval);
Mytimer.AutoReset = true;
Mytimer.Elapsed += new System.Timers.ElapsedEventHandler(Mytimer_tick);
private void Mytimer_tick(object sender, System.Timers.ElapsedEventArgs e)
this.Invoke(new SetControlValue(ShowTime), TimeCount);
private void ShowTime(long t)
TimeSpan temp = new TimeSpan(0,0,(int)t);
txtTimeShow.Text = string.Format("{0:00}:{1:00}:{2:00}", temp.Hours, temp.Minutes,temp.Seconds);
private void txtTimeShow_TextChanged(object sender, EventArgs e)
public partial class Timer2 : Form
{
//定义Timer类变量
System.Timers.Timer Mytimer;
long TimeCount;
//定义委托
public delegate void SetControlValue(long value);
public Timer2()
{
InitializeComponent();
}
private void label1_Click(object sender, EventArgs e)
{
}
//开始计时
private void btnTimeStart_Click(object sender, EventArgs e)
{
Mytimer.Start();
TimeCount = 0;
}
//停止计时
private void btnTimeStop_Click(object sender, EventArgs e)
{
Mytimer.Stop();
}
private void Timer2_Load(object sender, EventArgs e)
{
//设置时间间隔ms
int interval = 1000;
Mytimer = new System.Timers.Timer(interval);
//设置重复计时
Mytimer.AutoReset = true;
//设置执行System.Timers.Timer.Elapsed事件
Mytimer.Elapsed += new System.Timers.ElapsedEventHandler(Mytimer_tick);
}
private void Mytimer_tick(object sender, System.Timers.ElapsedEventArgs e)
{
this.Invoke(new SetControlValue(ShowTime), TimeCount);
TimeCount++;
}
private void ShowTime(long t)
{
TimeSpan temp = new TimeSpan(0,0,(int)t);
txtTimeShow.Text = string.Format("{0:00}:{1:00}:{2:00}", temp.Hours, temp.Minutes,temp.Seconds);
}
private void txtTimeShow_TextChanged(object sender, EventArgs e)
{
}
}
代码中利用TimeSpan将计数器的整数转化为DateTime日期。
和Timer控件相比,System.Timers.Timer.Elapsed事件相当于控件的Tick事件,只不过需要自己添加事件。