因为执行了多次 timer1.Tick += new EventHandler(timer1_Tick);
 
注册事件所以就执行多次了..建议你分别实例化,互不干扰比如 在load事件里就定义好Interval 以及注册好事件..

解决方案 »

  1.   

    修改了一下。 private void timer2_Tick(object sender, EventArgs e)
            {
                timer2.Interval = 3600 * 1000;
                timer1.Enabled = true;
                timer1.Start();
                //timer1.Tick += new EventHandler(timer1_Tick);
            }
      

  2.   

    这样的话 那我timer1的具体方法写哪里
      

  3.   

    但是 我这个 必须得 限制性 timer2  timer2执行好后接着马上执行timer1  如果互不干扰的话  那无法达到这个效果
    而且奇怪的是  我timer2  也有timer2.Tick += new EventHandler(timer2_Tick);  就执行一次啊
      

  4.   

    这样的话 那我timer1的具体方法写哪里timer1_Tick的方法我没改,我只是给你改了timer2_Tick
      

  5.   

    这是C#?
    C#里有timer1.Start();timer1.Stop()??如果是timer2执行完想马上执行timer1,你把timer1里的代码封装成函数调用不就行了,用2个timer来回传值累不累
    逻辑超混乱
      

  6.   

    else
                {
                    timer1.Stop();
                }
    这个只有你dt为null的时候才退出,否则一直执行
     timer1.Tick += new EventHandler(timer1_Tick);
    每次timer2执行都给timer1新挂一个事件上去,可不是执行好多次么
      

  7.   

    但是 我这个 必须得 限制性 timer2  timer2执行好后接着马上执行timer1  如果互不干扰的话  那无法达到这个效果
    而且奇怪的是  我timer2  也有timer2.Tick += new EventHandler(timer2_Tick);  就执行一次啊
    你timer2一小时才执行一次,不等足一小时,你怎么知道它到时候到底执行几次...
      

  8.   

      timer1.Tick += new EventHandler(timer1_Tick);
    只有出生没有死亡,当然越来越多了
      

  9.   

    timer有Start()和Stop()的。
    我们老大也教育我们不要用timer,逻辑混乱。
      

  10.   

    timer1.Enabled = true;这才是C#的语法吧
    Start()方法是什么版本出现的...
    VS2008里还没有
      

  11.   

    用线程吧,Timer就是个王八蛋,很让人讨厌!用线程肯定没问题了!
      

  12.   

    也不能一棒子打死
    简单的UI显示,还是放timer里简单的多
    放线程里还要委托,怪麻烦的
      

  13.   

    使用TimeSpan获取时间间隔        private DateTime G_DateTime_First,//定义两个时间字段
                G_DateTime_Second;
            private void btn_First_Click(object sender, EventArgs e)
            {
                G_DateTime_First = DateTime.Now;//为时间字段赋值
                lab_first.Text = "系统时间:" +//显示时间
                    G_DateTime_First.ToString(
                    "yyyy年M月d日 H时m分s秒 fff毫秒");
            }
            private void btn_Second_Click(object sender, EventArgs e)
            {
                G_DateTime_Second = DateTime.Now;//为时间字段赋值
                lab_second.Text = "系统时间:" +//显示时间
                    G_DateTime_Second.ToString(
                    "yyyy年M月d日 H时m分s秒 fff毫秒");
            }
            private void btn_Result_Click(object sender, EventArgs e)
            {
                TimeSpan P_timespan_temp =//计算两个时间的时间间隔
                    G_DateTime_First > G_DateTime_Second ?
                    G_DateTime_First - G_DateTime_Second :
                    G_DateTime_Second - G_DateTime_First;
                lab_result.Text = string.Format(//显示时间间隔
                    "间隔时间:{0}天{1}时{2}分{3}秒 {4}毫秒", 
                    P_timespan_temp.Days, P_timespan_temp.Hours,
                    P_timespan_temp.Minutes, P_timespan_temp.Seconds,
                    P_timespan_temp.Milliseconds);
            }