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而不是标签文本?如果你在方法中设置了一个断点,它被击中了吗?同时,计时器是一个低优先级的消息,所以它不会在间隔时间内被触发;你准备好了。所以,你最好在开始时捕捉时间,然后减去事件中的当前时间……或者使用秒表。我已经更新了文章的更多细节。似乎整个函数都没有被调用,这是因为,正如克劳斯所说,我似乎没有看到一个事件处理程序连接到计时器上。您必须为该事件实际分配计时器处理程序,否则,它将永远不会被调用。