难道不是 设置   Enable = false 么, 又添加了 stop()也还是不行???

解决方案 »

  1.   

    timer控件有3种,你只的是那种?
    关闭不代表立刻终止当前的执行,如果有消息队列里等待执行的任务,一样还是要执行的。
      

  2.   


    我那只是, 从工具箱里直接拖出来的, Windows.Forms.Timer表述有问题, 我是想终止当前的执行
      

  3.   

    另, 补充一下, 之前使用 button 控制 timer 的执行, 能正常使用,
     
    这次是, 把  Enable = false, 放在他自身的间隔事件里, 然后一直执行
      

  4.   

    自答一下哈, 关于终止 timer 的执行操作的:
    原来的程序为: private void timer1_Tick(object sender, EventArgs e)
            {
                time--;
                if (time >= 0)
                {
                    this.lblTip.Text = "Time:  " + time.ToString("00");
                }
                else
                {
                    string msg = "在这一分钟时间内, 你已经成功滴获得了" + winCnt + "个苹果";
                    MessageBox.Show(msg);
                    this.timer1.Enabled = false;    //已经设置为 false了, 为什么还能执行, 对话框一直在显示????
                    this.timer1.Stop();
                }
            }
    后来, 度到 http://blog.csdn.net/cuijianwei74/article/details/1353487, 才意识到 是位置写错了,更正为:  this.timer1.Enabled = false; 
                  
       MessageBox.Show(msg);放到前面就不会弹出多余的对话框?? 这不都一样么????还有, 关于一楼 的 3 中对话框,(这个真心不知道, 惭愧呀、、、、、)
    搜了一下, 
    http://blog.csdn.net/bestgonghuibin/article/details/6532928
    http://www.cnblogs.com/firstyi/archive/2008/01/21/1047355.html 
    有很多关于这方面的介绍, 还涉及到线程的一些知识。
    。。 想不到,学了这么长时间, 还是这么无知。
    标记下, 明天继续!
      

  5.   

    timer是无法到自身的事件中停止的,以前我试过了。
      

  6.   


    你那个对话框没关,就没执行后面的代码,所有timer还是会执行,
      

  7.   

     MessageBox.Show(msg); 阻塞住主线程了。点击确定按钮后就应该停住了吧。
      

  8.   


    原来是这样子的呀! 多谢了哈这个timer 的时间间隔是 1s, 当时那个对话框就哗啦地出现一大片,我真是一下就慌乱了, 而且也绝对没有想到是这个问题 。。眼看这都月底了, 好笑。。
     
      

  9.   

    this.timer1.Enabled = false; 把这句去掉
    增加一个方法
            public void ShowInfo(string message)
            {
                while (this.timer.Enabled == true) ;
                MessageBox.Show(message);
            }在stop之后调用
    this.timer1.Stop();
    this.ShowInfo(message);