C# 
Timer x=new Timer();
x.start() 与 x.Enable=true;有什么区别?
我没用start()方法,程序能正常运行。但有时候要弹出
“未将对象引用设置到对象的实例”的错误。
不知道为什么
谢谢各位了!

解决方案 »

  1.   

    没有start也能实现timer的功能,即定时触发的功能?
      

  2.   

    如果将 Enabled 设置为 true 并将 AutoReset 设置为 false,则 Timer 在第一次达到间隔时仅引发一次 Elapsed 事件。当 Enabled 为 true 并且 AutoReset 为 true 时,Timer 继续按指定的间隔引发 Elapsed 事件。如果 AutoReset 为 false,则必须调用 Start 方法才能再次开始计数。
      

  3.   

    代码太长了,不太方便啊。
    我估计可能出在
    如果计时器当前处于启用状态,则为 true;否则为 false。默认为 false。当值为 true 时,计时器不受“垃圾回收”的处置。 private void MoveX(object sender, EventArgs e)
    {
    try
    {
    time1.Stop();
    for(int j=0;j<current_zhuy;j++) this.pic[j,te_i].Left-=(jianju)*te_i;
    if(te_i<current_zhux) time2.Start();
    }
    catch(Exception c)
    {MessageBox.Show(c.Message);} }
    pic[x,y]是pictureBox的对象数组
      

  4.   

    的确是那个问题,解决方法:
    开始把所有的timer.enabled设置为ture;设置方法.stop()
    我上面用了大量的pictureBox.很可能因为那样被释放了
    所以出现了 未将对象引用设置到对象的实例设置的Timer的对象个数有限制吗?
      

  5.   

    你不用Start,和Stop,而是设置timer.Enable=true和False...来启动和停止...
      

  6.   

    TO:设置的Timer的对象个数有限制吗?没有..
      

  7.   

    设置timer.Enable当值为 true 时,计时器不受“垃圾回收”的处置。
    所有才用了start 与 stop 
    谢谢你了!!