C# Timer.start()是否意外?
我的想法是,计时器应该只在触发C# Timer.start()是否意外?,c#,forms,timer,C#,Forms,Timer,我的想法是,计时器应该只在触发MouseDown事件时启动,但现在一旦表单加载,它就会每秒显示“Hello”。 如代码中所述,在MouseDown事件期间只调用aTimer.Start()。我可以知道出了什么问题吗?您之所以会出现这种行为,是因为timer.Start()和timer.Enabled=true(还有timer.Stop()和timer.Enabled=false)之间没有区别。因此,如果在formLoad中调用timer.Enabled=true,则启动计时器。 有关详细信息,请
MouseDown
事件时启动,但现在一旦表单加载,它就会每秒显示“Hello”。
如代码中所述,在
MouseDown
事件期间只调用aTimer.Start()
。我可以知道出了什么问题吗?您之所以会出现这种行为,是因为timer.Start()
和timer.Enabled=true
(还有timer.Stop()
和timer.Enabled=false
)之间没有区别。因此,如果在formLoad
中调用timer.Enabled=tru
e,则启动计时器。有关详细信息,请检查您获得此行为,因为
timer.Start()
和timer.Enabled=true
(以及timer.Stop()
和timer.Enabled=false
)之间没有区别。因此,如果在formLoad
中调用timer.Enabled=tru
e,则启动计时器。有关更多信息,请查看
private void PlayerClockInPanelControl_Load(object sender, EventArgs e)
{
InitializedMouseDownEvent();
}
private void InitializedMouseDownEvent()
{
aTimer = new System.Timers.Timer();
aTimer.Elapsed += new ElapsedEventHandler(OnTimedEvent);
aTimer.Interval = 2000;
aTimer.Enabled = true;
}
private void OnTimedEvent(object source, ElapsedEventArgs e)
{
this.ShowErrorMessage("Hello");
aTimer.Stop();
}
private void picturebox_MouseDown(object sender, EventArgs e)
{
aTimer.Start();
}
private void picturebox_MouseUp(object sender, EventArgs e)
{
aTimer.Stop();
}