求解timer时间控件的问题

payp1016 2013-12-10 01:21:48
第一次时间比如是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秒,哪位大师帮我看看到底是什么原因,谢谢
...全文
114 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
feiyun0112 2013-12-10
  • 打赏
  • 举报
回复
timer.Tick += new EventHandler(timer1_Tick);

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


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

110,530

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧