C# 如何将“滴答”事件连接到计时器?
计时器的C# 如何将“滴答”事件连接到计时器?,c#,timer,C#,Timer,计时器的间隔设置为1000(因此它将每秒滴答一次),并且启用设置为真。我没有用代码放置计时器,而是从VisualStudio工具箱中放置它 标签文本和调试控制台均未更新 这是我的密码: public int sec; public int min; public Form1() //Constructor { InitializeComponent(); sec = 0; min = 0; timer1.Start(); } private void time
间隔
设置为1000
(因此它将每秒滴答一次),并且启用
设置为真
。我没有用代码放置计时器,而是从VisualStudio工具箱中放置它
标签文本和调试控制台均未更新
这是我的密码:
public int sec;
public int min;
public Form1() //Constructor
{
InitializeComponent();
sec = 0;
min = 0;
timer1.Start();
}
private void timer1_Tick(object sender, EventArgs e)
{
sec++; //Seconds increase
if (sec == 60)
{
sec = 0; //Reset Seconds
min++; //Minutes increase
}
label9.Text = ("Timer: " + min + ":" + sec); //Update the label
Debug.WriteLine("Tick " + sec);
}
事件是由对象发送的一条消息,用以通知事件的发生
行动
为了让您的方法接收事件(不必是方法,也可以是对象),您必须向计时器
对象添加事件处理程序,如下所示:
public int sec;
public int min;
public Form1() //Constructor
{
InitializeComponent();
sec = 0;
min = 0;
timer1.Start();
myTimer.Tick += new EventHandler(timer1_Tick);
}
private void timer1_Tick(object sender, EventArgs e)
{
sec++; //Seconds increase
if(sec==60)
{
sec = 0; //Reset Seconds
min++; //Minutes increase
}
label9.Text = ("Timer: "+min+":"+sec); //Update the label
Debug.WriteLine("Tick "+sec);
}
现在,只要发出勾号
信号,发送方就会调用您的方法
您是否也可以将设置计时器和附加事件处理程序的代码包括在内?确切的效果是什么?您是否看到Debug.WriteLine而不是标签文本?如果你在方法中设置了一个断点,它被击中了吗?同时,计时器是一个低优先级的消息,所以它不会在间隔时间内被触发;你准备好了。所以,你最好在开始时捕捉时间,然后减去事件中的当前时间……或者使用秒表。我已经更新了文章的更多细节。似乎整个函数都没有被调用,这是因为,正如克劳斯所说,我似乎没有看到一个事件处理程序连接到计时器上。您必须为该事件实际分配计时器处理程序,否则,它将永远不会被调用。