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();
    }