简介:

当我使用计算机工作时,我总是如此的专心致志,以至于每当我过了“一会儿”去看时间时,发现已经过了三个小时,而我却完全没有意识到!所以我决定使用我从Code Project学来的C#技术,来创建一个简单的应用程序—使用Timer 对象来倒计时一个由我自己设定的时间,并一直循环播放一段wave音乐,直到你重设timer控件。

Timer对象基础

首先你要知道的是,使用Timer对象你需要访问如下命名空间:

接下来,介绍一下创建一个Timer的要点以及为这个timer对象的Elapsed事件设定事件委派。

先创建一个Timer对象,这里我定义我使用的timer为timerClock。接下来设定Elapsed事件委派,当事件被触发时,指定的委派将被调用,这里我定义我使用的委派名称为OnTimer()

接着,设定Interval属性,使用毫秒数值指示希望Elapsed事件被调用的间隔,这意味着,当我定义Interval属性为1000毫秒时,我定义的委派OnTimer()将每隔1000毫秒被调用一次,或者说是每隔1秒。

最后,需要设定Enabled属性为true,以使这个timer对象开始工作。接下来,剩下的只是一个小问题—创建一个委派,在这个timer对象的Elapsed属性被触发时调用。如果你以前没有使用过委派,不用担心,它们很容易使用,只需要创建一个方法,用来接收适合你捕获事件的一些变量。

针对Elapsed事件,这个委派需要接收一个普通对象和一个ElapsedEventArgs对象。

在报警程序中使用Timer控件

好的,介绍了这些基础,现在,我们来看在实际应用中的代码。注意,这里并不包括播放wave音乐和显示最小化图标的代码,完整的代码你可以在那个demo项目中看到,基本上我是直接从jow Blow撰写的《Low level audio players》中粘贴的播放wave的代码。

在下面的代码中,你可以看到,我将实例化Timer对象的方法放在我自己的初始化方法InitializeTimer()中,这个方法将被类构造调用。并且我创建了两个方法,inputToSeconds()secondsToTime()用来将字符串格式的时间格式转换为正型,以及一个反处理过程。这些方法只是用来帮助我们在TextBox控件中显示日期格式,这在整个应用的结构中,并不十分重要。其他的那些代码,是标准的Visual Studio.NET为Win Form程序生成的样板文件。

代码参考

实际的执行代码比上面的要多,但demo中关于播放wave音频的代码是取自Ianier Munoz关于A low-level audio player in C#一文,顺便一提,Ianier Munoz编写的播放wave的这个类十分便于使用和重用。

总结

这个应用程序演示了timer在实际环境中的一个简单应用,仅仅使用了一些简单的基础知识来创建一个简单的应用,我希望在我之后有人能给出它的更多更好的用法。

http://www.codeproject.com/csharp/timeralarm.asp

转载于:https://www.cnblogs.com/Athrun/archive/2007/07/19/824539.html

使用timer控件创建一个简单的报警程序相关推荐

  1. C#AE二次开发——使用AE控件创建第一个桌面应用程序

    ---------------- 版权声明:本文为CSDN博主「人生.蜕变」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明. 原文链接:https://blog. ...

  2. 创建一个简单的应用程序窗口,显示“欲穷千里目 更上一层楼”。这一行文字从窗口中向左滚动显示,而且每显示一轮,改变一次颜色,改变一次字体,一个周期为4种颜色,分别为红、绿、黄、蓝,四种字体分别为宋体、楷

    创建一个简单的应用程序窗口,显示"欲穷千里目 更上一层楼".这一行文字从窗口中向左滚动显示,而且每显示一轮,改变一次颜色,改变一次字体,一个周期为4种颜色,分别为红.绿.黄.蓝,四 ...

  3. clistctrl控件最后插入在后面_用图表控件做一个简单的员工信息查询系统

    前几天在上课的时候有同学说在做人员的信息查询的时候,经常的要去做查找搜索很麻烦,能不能做一个简单的人员信息查询系统,只需要选择人员的编号就可以查询到这个员工的信息.其实要实现这个同学的需求在EXCEL ...

  4. 安卓 spinner下拉框 做模糊查询_用图表控件做一个简单的员工信息查询系统

    前几天在上课的时候有同学说在做人员的信息查询的时候,经常的要去做查找搜索很麻烦,能不能做一个简单的人员信息查询系统,只需要选择人员的编号就可以查询到这个员工的信息.其实要实现这个同学的需求在EXCEL ...

  5. 练习1:创建一个简单的银行程序包

    练习目标-Java 语言中面向对象的封装性及构造器的使用. 任务 在这个练习里,创建一个简单版本的(账户类)Account类.将这个源文件放入banking程序包中.在创建单个帐户的默认程序包中,已编 ...

  6. android timer 控件,TimerView 一个解耦良好的计时控件,可自由扩展。 @codeKK Android开源站...

    世上本没有解耦,需求改的多了也便有了解耦. -- 产品经理 本例将通过一个计时控件,聊聊如何解耦~ 本TimerView仅作为demo,不保证其健壮性,请勿在实际项目中使用. 特点 UI 容器与计时逻 ...

  7. 创建一个简单的WCF程序

    为了使读者对基于WCF的编程模型有一个直观的映像,我将带领读者一步一步地创建一个完整的WCF应用.本应用功能虽然简单,但它涵盖了一个完整WCF应用的基本结构.对那些对WCF不是很了解的读者来说,这个例 ...

  8. 我的WCF之旅(1):创建一个简单的WCF程序

    http://www.cnblogs.com/artech/archive/2007/02/26/656901.html 为了使读者对基于WCF的编程模型有一个直观的映像,我将带领读者一步一步地创建一 ...

  9. DIRECTDRAW 1:创建一个简单的DIRECTDRAW程序

    步骤 1: 创建一个 DirectDraw 对象 要创建一个 DirectDraw 对象的实例,你的应用程序要象 DDEx1 例程中的 doInit 函数那样先使用 DirectDrawCreate ...

最新文章

  1. 网页如何调用flash的方法
  2. WordCount by C# 结对编程
  3. python matplotlib.pyplot.scatter() 中的cmap参数是什么意思?
  4. canvas.translate(x,y)
  5. SAP Spartacus B2B 列表页面的 (i) icon popover Component 的声明位置
  6. 2002勘察设计收费标准_上海装修设计师的收费标准是什么?
  7. 利用Javascript判断操作系统的类型
  8. 计算机语言学翁富良,形式语言与自动机的关系
  9. 计算机Excel运行环境,Excel Server Tutorial
  10. win7 flash 提示加载失败
  11. Virtual Box手动激活OEM版Win7
  12. c语言小游戏——弹跳的小球和简单的飞机游戏
  13. java 防篡改_用JAVA写一个简易图片防篡改
  14. rdkit 力场优化UFFOptimizeMolecule、MMFFOptimizeMolecule;chem3D 3D分子生成;获取分子坐标对象
  15. 互联网公司校招Java面试题总结及答案——CVTE
  16. (五十四)Android O WiFi 获取扫描结果流程梳理
  17. navicat for mysql注册码,各种版本都有
  18. uc浏览器网盘无限收藏_你很有可能不知道谷歌浏览器上面隐藏着这个小秘密!...
  19. 搭建基于瓦片的离线地图应用
  20. 弘辽科技:京东店铺运营技巧分享

热门文章

  1. 网络知识:说说我们常听说的网络攻击是怎么回事?
  2. 数据库恢复相关知识笔记
  3. 5G常见缩略语大全!
  4. 手机技巧:手机关掉这个开关,一下能省2G内存,再也不怕卡顿死机
  5. 两个分数化简比怎么化_我学《分数的意义》心得
  6. html5与跨平台开发,HTML5应用与跨平台应用开发
  7. python递归迭代_Python入门基础知识点(python迭代器和递归)
  8. 荒径 弗罗斯特_弗罗斯特庞克,颠覆性城市建设者
  9. 尤雨溪推荐神器 ni ,能替代 npm/yarn/pnpm ?简单好用!源码揭秘!
  10. 从Vue.js源码中我学到的几个实用函数