如果想实现倒计时效果,需要进度条(progressBar)控件和时间(Timer)控件。进度条控件用来展示倒计时的进度,而时间控件用来设置倒计时的时间间隔和触发相应的事件。Timer控件设置时间间隔为1秒。使用start命令来启动Timer控件,这样就可以开始倒计时了。
四个步骤
1.添加控件
2.在comboBox1控件中添加信息
/// <summary>
/// 在comboBox1控件中添加信息
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Form1_Load(object sender, EventArgs e)
{
int i;
for (i = 1; i < 100; i++)
{
comboBox1.Items.Add(i.ToString() + "秒");
}
}
3计时事件
/// <summary>
/// 计时事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void timer1_Tick(object sender, EventArgs e)
{
count++; //软件计时器在定时器每过1秒的时候加1(定时器每过x毫秒进入此函数,x要在设计中的timer1的interval属性中设置)
label3.Text = (time - count).ToString(); //倒计时时间减去软件计数器的时间,即剩余时间
progressBar1.Value = count; //设置进度条进度
if (count == time) //当软件计数器的值和倒计时时间相等时
{
timer1.Stop(); //停止计时
// System.Media.SystemSounds.Asterisk.Play(); //提示音
System.Media.SystemSounds.Beep.Play();
MessageBox.Show("倒计时结束"); //提示框,","前是显示的内容,","后是提示框的标题
//count = 0;
}
}
4按钮代码
/// <summary>
/// 按钮事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button1_Click(object sender, EventArgs e)
{
if (num == 0)
{
string str = comboBox1.Text; //将下拉框中显示的内容赋值给变量str
string data = str.Remove(str.Length - 1);
// string data = str.Substring(0, 2); //因为str中既有数字,又有字母,而程序只需要字母,因此使用Substring函数提取数字,第一个参数
//的意思是从第0位开始,第二个参数的意思是从第一个参数的位置开始往后提取2个字符。
time = Convert.ToInt16(data); //将提取到的数字从字符型转换为整形
count = 0;
progressBar1.Maximum = time; //将数字赋值给进度条的最大值
}
timer1.Start(); //开始定时
}
/// <summary>
/// 停止计时,清零
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button2_Click(object sender, EventArgs e)
{
progressBar1.Value = 0;
label3.Text = null;
num = 0;
time = 0;
timer1.Stop();
}
private void button3_Click(object sender, EventArgs e)
{
num = Convert.ToInt32(label3.Text);
timer1.Stop();
}