实例介绍
【实例简介】
【实例截图】
【核心代码】
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Media; using System.Text.RegularExpressions; namespace _12Timer加Label加DateTime.Now加播放WAV做闹钟 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } /// <summary> /// 为时钟附初值,为定时闹钟的时分秒赋初值 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Form1_Load(object sender, EventArgs e) { this.label1.Text = "当前时间:" DateTime.Now.ToString();//年月日时分秒 //初始化时钟闹铃 textBox2.Text = DateTime.Now.Hour.ToString();//时 textBox3.Text = (DateTime.Now.Minute 10).ToString();//分 10分钟后 textBox4.Text = DateTime.Now.Second.ToString();//秒 //初始化倒计时秒数 InitSeconds(); } /// <summary> /// 从上面提取的方法 因为多处用 提取一下,提高代码复用性 /// </summary> private void InitSeconds() { if (radioButton1.Checked)//选中小时 { secondCount = Convert.ToInt32(textBox1.Text) * 60 * 60;//加个正则表达式限制必须为数字 label2.Text = secondCount.ToString() "秒"; } else if (radioButton2.Checked) { secondCount = Convert.ToInt32(textBox1.Text) * 60; label2.Text = secondCount.ToString() "秒"; } else if (radioButton3.Checked) { secondCount = Convert.ToInt32(textBox1.Text); label2.Text = secondCount.ToString() "秒"; } this.textBox1.Focus(); } /// <summary> /// 倒计时闹钟 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void timer1_Tick(object sender, EventArgs e) { secondCount--; if (secondCount < 0) { this.timer1.Enabled = false; this.label2.Text = "倒计时结束啦!!!";//后改剩时分秒加 //SoundPlayer sp = new SoundPlayer(); //sp.SoundLocation = @"C:\Documents and Settings\Administrator\桌面\1.wav"; sp.SoundLocation = @"wav\1.wav"; sp.Play(); return; } else { //this.label2.Text = secondCount.ToString() "秒";//Label2为 this.label2.Text = GetHmsByS(secondCount); } } /// <summary> /// 将剩余秒数转换成几小时几分几秒 /// </summary> /// <param name="second"></param> /// <returns></returns> public static string GetHmsByS(int second) { int h, m, s; h = second / 3600; m = (second % 3600) / 60; s = second % 60; string res = "剩余" h "小时" m "分钟" s "秒";//这里有个隐式转换 return res; } /// <summary> /// 倒计时启动按钮 启动Timer1控件 倒计时为0响铃 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button1_Click(object sender, EventArgs e) { if (label2.Text.Trim().ToUpper() == "S") { MessageBox.Show("未生成有效的倒计时秒数..."); return; } else { if (this.button1.Text == "启动倒计时闹钟") { this.button1.Text = "停止倒计时闹钟"; this.timer1.Enabled = true; } else { this.button1.Text = "启动倒计时闹钟"; this.radioButton2.Checked = true; this.textBox1.Text = "10"; //this.label2.Text = "S"; InitSeconds(); this.timer1.Enabled = false; sp.Stop(); } } } int hour, min, sec;//声明三个字段 类下(此项目下)所有方法调用的 时 分 秒 /// <summary> /// 时钟闹钟启动按钮 启用Timer2控件 用于几点几分几秒响铃 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button2_Click(object sender, EventArgs e) { if (this.button2.Text == "启动时间闹钟") { this.button2.Text = "停止时间闹钟"; this.label10.Text = "计时中...";//为结束提示后加 hour = Convert.ToInt32(textBox2.Text.Trim()); min = Convert.ToInt32(textBox3.Text.Trim()); sec = Convert.ToInt32(textBox4.Text.Trim()); this.timer2.Enabled = true; } else { this.button2.Text = "启动时间闹钟"; this.label10.Text = "?";//为结束提示后加 textBox2.Text = DateTime.Now.Hour.ToString(); textBox3.Text = (DateTime.Now.Minute 10).ToString(); textBox4.Text = DateTime.Now.Second.ToString(); this.timer2.Enabled = false; sp.Stop(); } } SoundPlayer sp = new SoundPlayer();//================== /// <summary> /// 时间闹钟 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void timer2_Tick(object sender, EventArgs e) { if (DateTime.Now.Hour == hour && DateTime.Now.Minute == min && DateTime.Now.Second == sec) { this.timer2.Enabled = false; this.label10.Text = "到时间啦!!!";//为到点结束提示后加 sp.SoundLocation = @"wav\1.wav"; sp.Play(); } } /// <summary> /// Timer3默认就启用 1000毫秒执行一次 用于控制最上面Label1显示的时钟 /// 而Timer1和Timer2默认是不启用的 由按钮启用 用于控制闹钟 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void timer3_Tick(object sender, EventArgs e) { label1.Text = "当前时间:" DateTime.Now.ToString(); } int secondCount = 0;//声明一个字段(默认private) 用于记录倒计时秒数 /// <summary> /// 设置秒数 并给 倒计时显示的Label2 并为倒计时秒数的私有字段赋初值 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void textBox1_TextChanged(object sender, EventArgs e) { #region 正则表达式 方式 限制为 数字 //bool b = Regex.IsMatch(textBox1.Text, @"^(\d )$");//匹配数字 //if (!b) //{ // MessageBox.Show("时间设置必须为数字..."); // return; //} #endregion try { secondCount = Convert.ToInt32(this.textBox1.Text) * 60; this.label2.Text = secondCount.ToString() "秒"; } catch { MessageBox.Show("输入非法..."); return; } } /// <summary> /// 时 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void radioButton1_CheckedChanged(object sender, EventArgs e) { if (radioButton1.Checked) { secondCount = Convert.ToInt32(textBox1.Text) * 60 * 60; label2.Text = secondCount.ToString() "秒"; } } /// <summary> /// 分 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void radioButton2_CheckedChanged(object sender, EventArgs e) { if (radioButton2.Checked) { secondCount = Convert.ToInt32(textBox1.Text) * 60; label2.Text = secondCount.ToString() "秒"; } } /// <summary> /// 秒 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void radioButton3_CheckedChanged(object sender, EventArgs e) { if (radioButton3.Checked) { secondCount = Convert.ToInt32(textBox1.Text); label2.Text = secondCount.ToString() "秒"; } } private void textBox2_TextChanged(object sender, EventArgs e) { try { int tmp=Convert.ToInt32(textBox2.Text.Trim()); } catch { MessageBox.Show("输入非法..."); textBox2.Focus(); return; } } private void textBox3_TextChanged(object sender, EventArgs e) { try { int tmp = Convert.ToInt32(textBox3.Text.Trim()); } catch { MessageBox.Show("输入非法..."); textBox3.Focus(); return; } } private void textBox4_TextChanged(object sender, EventArgs e) { try { int tmp = Convert.ToInt32(textBox4.Text.Trim()); } catch { MessageBox.Show("输入非法..."); textBox4.Focus(); return; } } } } //本可推广出定时器似秦一中简...小KS
好例子网口号:伸出你的我的手 — 分享!
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论