代码如下:
        public System.Windows.Forms.Timer myTimer = new System.Windows.Forms.Timer();        int count;        private void TimerEventProcessor(Object myObject,EventArgs myEventArgs)
        {
            myTimer.Stop();
            MessageBox.Show(count++.ToString());
        }
        private void button1_Click(object sender, EventArgs e)
        {
            myTimer.Interval = 2000;
            myTimer.Tick += new EventHandler(TimerEventProcessor);            myTimer.Start();
        }
为什么我第一次点button1 弹出 0,第二次点弹出1,2 第三次点3 4 5 ..............,而不是第一次点弹出0,第二次弹出1,第三次弹出2

解决方案 »

  1.   

     myTimer.Start()之后就会自动弹 你点一下相当于新增了一个timer...
      

  2.   


            private void TimerEventProcessor(Object myObject, EventArgs myEventArgs)
            {
                myTimer.Stop();
                myTimer.Tick -= new EventHandler(TimerEventProcessor); //取消事件注册
                MessageBox.Show(count++.ToString());
            }
      

  3.   

    myTimer.Tick += new EventHandler(TimerEventProcessor);
    这句话有问题,+=叠加,单机一次,tick事件触发一次,再单击,tick事件触发两次!
    不要把这句换在click事件中
    或:myTimer.Tick = new EventHandler(TimerEventProcessor);