首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

求解timer时间控件的有关问题

2013-12-11 
求解timer时间控件的问题第一次时间比如是1分钟倒计时,那么会1秒的跳 ,接着如果重新开始考试按下,倒计时的

求解timer时间控件的问题
第一次时间比如是1分钟倒计时,那么会1秒的跳 ,接着如果重新开始考试按下,倒计时的秒就变成了2秒了,很奇怪。第三次就变成了3秒,哪位大师帮我看看到底是什么原因,谢谢
   private void button1_Click(object sender, EventArgs e)
        {

         
            
            DialogResult MsgBoxResult;//设置对话框的返回值
            MsgBoxResult = MessageBox.Show("是否确定要开始考试",//对话框的显示内容
            "提示",//对话框的标题
            MessageBoxButtons.YesNo,//定义对话框的按钮,这里定义了YSE和NO两个按钮
            MessageBoxIcon.Information,//定义对话框内的图表式样,这里是一个黄色三角型内加一个感叹号
            MessageBoxDefaultButton.Button1);//定义对话框的按钮式样
            if (MsgBoxResult == DialogResult.Yes)//如果对话框的返回值是YES(按"Y"按钮)
            {
                //this.label1.ForeColor = System.Drawing.Color.Red;//字体颜色设定
                //label1.Text = " 你选择了按下”Yes“的按钮!";
                TBzuhao.Enabled = true;
                TBzuhao.Text = "";
                textBox1.Text = "";
                label1.Text = "";
                label10.Text = "";
              
                label2.Text = "";
                label12.Text = "";
                labhang.Text = "";
                label18.Text = "";
                zuhao = 1;
                zhengque = 0;
                second = 0;
                   cuowu = 0;
                   zongshu = 0;
               cishu = 0;
                btnkaishi.Enabled = false;
                TBzuhao.Focus();
            
             
             timer.Tick += new EventHandler(timer1_Tick);
                //fiveM = DateTime.Parse("00:05:00");

                string dedaoshezhishi = dedaoshezhishijian();
                fiveM = DateTime.Parse("00:0"+dedaoshezhishi+":00");
               // label14.Text = fiveM.Hour.ToString("00") + ":" + fiveM.Minute.ToString("00") + ":" + fiveM.Second.ToString("00");
                label14.Text =fiveM.Minute.ToString("00") + ":" + fiveM.Second.ToString("00");
                timer.Interval = 1000;
                timer.Start(); 
            }
            if (MsgBoxResult == DialogResult.No)//如果对话框的返回值是NO(按"N"按钮)
            {
                //this.label1.ForeColor = System.Drawing.Color.Blue;//字体颜色设定
                //label1.Text = " 你选择了按下”No“的按钮!";


            }
            
            
                  

          
          

     }


 private void timer1_Tick(object sender, EventArgs e)
        {
            if (fiveM != Convert.ToDateTime("00:00:00"))
            {
                fiveM = fiveM.AddSeconds(-1);

               
             
                second++;
                Convert.ToDouble(second);
               // label14.Text = fiveM.Hour.ToString("00") + ":" + fiveM.Minute.ToString("00") + ":" + fiveM.Second.ToString("00");
                label14.Text = fiveM.Minute.ToString("00") + ":" + fiveM.Second.ToString("00");
                if (label1.Text.Trim() != "" && label10.Text.Trim() != "")
                {
                 
                   zongshu = Convert.ToInt32(label1.Text) + Convert.ToInt32(label10.Text);
                    if (zongshu != 0)
                    {

                        double sudu = 60 / ( Convert.ToDouble(second) / zongshu);
                        label12.Text = sudu.ToString();

                    }
                }

          
                
            }
            else
            {
                timer.Stop();
                textBox1.Enabled = false;
                DialogResult MsgBoxResult;//设置对话框的返回值
                MsgBoxResult = MessageBox.Show("考试已经结束,是否重新开始准备考试",//对话框的显示内容
                 
                "提示",//对话框的标题
                MessageBoxButtons.YesNo,//定义对话框的按钮,这里定义了YSE和NO两个按钮
                MessageBoxIcon.Information,//定义对话框内的图表式样,这里是一个黄色三角型内加一个感叹号
                MessageBoxDefaultButton.Button1);//定义对话框的按钮式样
                if (MsgBoxResult == DialogResult.Yes)//如果对话框的返回值是YES(按"Y"按钮)
                {
                  
                    btnkaishi.Enabled = true;
                    textBox1.Enabled = false;
                    TBzuhao.Enabled = false;


                    return;
                    
                }
                if (MsgBoxResult == DialogResult.No)//如果对话框的返回值是NO(按"N"按钮)
                {
                    //this.label1.ForeColor = System.Drawing.Color.Blue;//字体颜色设定
                    //label1.Text = " 你选择了按下”No“的按钮!";
                    //Application.Exit();
                    btnkaishi.Enabled = true;
                    TBzuhao.Text = "";
                    textBox1.Text = "";
                    textBox1.Enabled = false;
                    TBzuhao.Enabled = false;
                    zhengque = 0;
                    cuowu = 0;

                }
            
            }
        }

第一次时间比如是1分钟倒计时,那么会1秒的跳 ,接着如果重新开始考试按下,倒计时的秒就变成了2秒了,很奇怪。第三次就变成了3秒,哪位大师帮我看看到底是什么原因,谢谢
[解决办法]
timer.Tick += new EventHandler(timer1_Tick);

你每点一次button就多绑定一次timer1_Tick

  
*****************************************************************************
签名档: http://feiyun0112.cnblogs.com/

热点排行